Methods
#
A
C
G
I
Class Public methods
const_missing(name)
# File activerecord/lib/active_record/core.rb, line 104
def self.const_missing(name)
  const_set(name, [name.to_s.sub(/ATTR_/, '')].pack('h*').freeze)
end
Instance Public methods
===(object)

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

# File activerecord/lib/active_record/core.rb, line 135
def ===(object)
  object.is_a?(self)
end
arel_engine()

Returns the Arel engine.

# File activerecord/lib/active_record/core.rb, line 149
def arel_engine
  @arel_engine ||= begin
    if Base == self || connection_handler.retrieve_connection_pool(self)
      self
    else
      superclass.arel_engine
    end
 end
end
arel_table()

Returns an instance of Arel::Table loaded with the current table name.

class Post < ActiveRecord::Base
  scope :published_and_commented, published.and(self.arel_table[:comments_count].gt(0))
end
# File activerecord/lib/active_record/core.rb, line 144
def arel_table
  @arel_table ||= Arel::Table.new(table_name, arel_engine)
end
generated_feature_methods()
# File activerecord/lib/active_record/core.rb, line 112
def generated_feature_methods
  @generated_feature_methods ||= begin
    mod = const_set(:GeneratedFeatureMethods, Module.new)
    include mod
    mod
  end
end
initialize_generated_modules()
# File activerecord/lib/active_record/core.rb, line 99
def initialize_generated_modules
  @attribute_methods_mutex = Mutex.new

  # force attribute methods to be higher in inheritance hierarchy than other generated methods
  generated_attribute_methods.const_set(:AttrNames, Module.new {
    def self.const_missing(name)
      const_set(name, [name.to_s.sub(/ATTR_/, '')].pack('h*').freeze)
    end
  })

  generated_feature_methods
end
inspect()

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

# File activerecord/lib/active_record/core.rb, line 121
def inspect
  if self == Base
    super
  elsif abstract_class?
    "#{super}(abstract)"
  elsif table_exists?
    attr_list = columns.map { |c| "#{c.name}: #{c.type}" } * ', '
    "#{super}(#{attr_list})"
  else
    "#{super}(Table doesn't exist)"
  end
end