module ActiveRecord::Core::ClassMethods

Public Instance Methods

===(object) click to toggle source

Overwrite the default class equality method to provide support for association proxies.

# File lib/active_record/core.rb, line 262
def ===(object)
  object.is_a?(self)
end
allocate() click to toggle source
Calls superclass method
# File lib/active_record/core.rb, line 153
def allocate
  define_attribute_methods
  super
end
generated_association_methods() click to toggle source
# File lib/active_record/core.rb, line 235
def generated_association_methods
  @generated_association_methods ||= begin
    mod = const_set(:GeneratedAssociationMethods, Module.new)
    private_constant :GeneratedAssociationMethods
    include mod

    mod
  end
end
inspect() click to toggle source

Returns a string like 'Post(id:integer, title:string, body:text)'

Calls superclass method
# File lib/active_record/core.rb, line 246
def inspect
  if self == Base
    super
  elsif abstract_class?
    "#{super}(abstract)"
  elsif !connected?
    "#{super} (call '#{super}.connection' to establish a connection)"
  elsif table_exists?
    attr_list = attribute_types.map { |name, type| "#{name}: #{type.type}" } * ", "
    "#{super}(#{attr_list})"
  else
    "#{super}(Table doesn't exist)"
  end
end

Private Instance Methods

cached_find_by_statement(key, &block) click to toggle source
# File lib/active_record/core.rb, line 300
def cached_find_by_statement(key, &block)
  cache = @find_by_statement_cache[connection.prepared_statements]
  cache[key] || cache.synchronize {
    cache[key] ||= StatementCache.create(connection, &block)
  }
end
relation() click to toggle source
# File lib/active_record/core.rb, line 307
def relation
  relation = Relation.create(self, arel_table, predicate_builder)

  if finder_needs_type_condition? && !ignore_default_scope?
    relation.where(type_condition).create_with(inheritance_column.to_s => sti_name)
  else
    relation
  end
end
table_metadata() click to toggle source
# File lib/active_record/core.rb, line 317
def table_metadata
  TableMetadata.new(self, arel_table)
end