module ActiveRecord::AttributeMethods::PrimaryKey

def attribute_method?(attr_name)

def attribute_method?(attr_name)
  attr_name == "id" || super
end

def id

returns an array of the primary key column values.
Returns the primary key column's value. If the primary key is composite,
def id
  _read_attribute(@primary_key)
end

def id=(value)

raises TypeError when the set value not enumerable.
Sets the primary key column's value. If the primary key is composite,
def id=(value)
  _write_attribute(@primary_key, value)
end

def id?

all primary key column values must be queryable.
Queries the primary key column's value. If the primary key is composite,
def id?
  _query_attribute(@primary_key)
end

def id_before_type_cast

returns an array of primary key column values before type cast.
Returns the primary key column's value before type cast. If the primary key is composite,
def id_before_type_cast
  attribute_before_type_cast(@primary_key)
end

def id_for_database # :nodoc:

:nodoc:
def id_for_database # :nodoc:
  @attributes[@primary_key].value_for_database
end

def id_in_database

returns an array of primary key column values from database.
Returns the primary key column's value from the database. If the primary key is composite,
def id_in_database
  attribute_in_database(@primary_key)
end

def id_was

returns an array of primary key column previous values.
Returns the primary key column's previous value. If the primary key is composite,
def id_was
  attribute_was(@primary_key)
end

def primary_key_values_present? # :nodoc:

:nodoc:
def primary_key_values_present? # :nodoc:
  !!id
end

def to_key

available.
Returns this record's primary key value wrapped in an array if one is
def to_key
  key = id
  Array(key) if key
end