Module: SchemaPlus::Core::ActiveRecord::Base::ClassMethods

Defined in:
lib/schema_plus/core/active_record/base.rb

Instance Method Summary collapse

Instance Method Details

#belongs_to(name, scope = nil, **options, &extension) ⇒ Object



43
44
45
46
47
# File 'lib/schema_plus/core/active_record/base.rb', line 43

def belongs_to(name, scope = nil, **options, &extension)
  SchemaMonkey::Middleware::Model::Association::Declaration.start(model: self, name: name, scope: scope, options: options, extension: extension) do |env|
    env.result = super(env.name, env.scope, **env.options, &env.extension)
  end.result
end

#columns ⇒ Object



9
10
11
12
13
# File 'lib/schema_plus/core/active_record/base.rb', line 9

def columns
  SchemaMonkey::Middleware::Model::Columns.start(model: self, columns: []) { |env|
    env.columns += super
  }.columns
end

#has_and_belongs_to_many(name, scope = nil, **options, &extension) ⇒ Object



37
38
39
40
41
# File 'lib/schema_plus/core/active_record/base.rb', line 37

def has_and_belongs_to_many(name, scope = nil, **options, &extension)
  SchemaMonkey::Middleware::Model::Association::Declaration.start(model: self, name: name, scope: scope, options: options, extension: extension) do |env|
    env.result = super(env.name, env.scope, **env.options, &env.extension)
  end.result
end

#has_many(name, scope = nil, **options, &extension) ⇒ Object

has_many, has_one, has_and_belongs_to_many, and belongs_to don't have a documented return value. But at least one gem (https://github.com/hzamani/active_record-acts_as/blob/master/lib/active_record/acts_as/relation.rb#L14) relies on the undocumented return value.



25
26
27
28
29
# File 'lib/schema_plus/core/active_record/base.rb', line 25

def has_many(name, scope = nil, **options, &extension)
  SchemaMonkey::Middleware::Model::Association::Declaration.start(model: self, name: name, scope: scope, options: options, extension: extension) do |env|
    env.result = super(env.name, env.scope, **env.options, &env.extension)
  end.result
end

#has_one(name, scope = nil, **options, &extension) ⇒ Object



31
32
33
34
35
# File 'lib/schema_plus/core/active_record/base.rb', line 31

def has_one(name, scope = nil, **options, &extension)
  SchemaMonkey::Middleware::Model::Association::Declaration.start(model: self, name: name, scope: scope, options: options, extension: extension) do |env|
    env.result = super(env.name, env.scope, **env.options, &env.extension)
  end.result
end

#reset_column_information ⇒ Object



15
16
17
18
19
# File 'lib/schema_plus/core/active_record/base.rb', line 15

def reset_column_information
  SchemaMonkey::Middleware::Model::ResetColumnInformation.start(model: self) do |env|
    super
  end
end