123456789_123456789_123456789_123456789_123456789_

Module: ActiveRecord::AttributeMethods::PrimaryKey

Relationships & Source Files
Namespace Children
Modules:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: activerecord/lib/active_record/attribute_methods/primary_key.rb

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

append_features, prepend_features

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#id (rw)

Returns the primary key column’s value. If the primary key is composite, returns an array of the primary key column values.

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 20

def id
  _read_attribute(@primary_key)
end

#id=(value) (rw)

Sets the primary key column’s value. If the primary key is composite, raises TypeError when the set value not enumerable.

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 30

def id=(value)
  _write_attribute(@primary_key, value)
end

#id?Boolean (rw)

Queries the primary key column’s value. If the primary key is composite, all primary key column values must be queryable.

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 36

def id?
  _query_attribute(@primary_key)
end

#primary_key_values_present?Boolean (readonly)

This method is for internal use only.
[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 24

def primary_key_values_present? # :nodoc:
  !!id
end

Instance Method Details

#attribute_method?(attr_name) ⇒ Boolean (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 63

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

#id_before_type_cast

Returns the primary key column’s value before type cast. If the primary key is composite, returns an array of primary key column values before type cast.

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 42

def id_before_type_cast
  attribute_before_type_cast(@primary_key)
end

#id_for_database

This method is for internal use only.
[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 58

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

#id_in_database

Returns the primary key column’s value from the database. If the primary key is composite, returns an array of primary key column values from database.

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 54

def id_in_database
  attribute_in_database(@primary_key)
end

#id_was

Returns the primary key column’s previous value. If the primary key is composite, returns an array of primary key column previous values.

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 48

def id_was
  attribute_was(@primary_key)
end

#to_key

Returns this record’s primary key value wrapped in an array if one is available.

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 13

def to_key
  key = id
  Array(key) if key
end