Module: ActiveRecord::AttributeMethods::PrimaryKey
Relationships & Source Files | |
Namespace Children | |
Modules:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::ActiveSupport::Concern
|
|
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. |
Instance Attribute Summary
-
#id
rw
Returns the primary key column’s value.
-
#id=(value)
rw
Sets the primary key column’s value.
-
#id? ⇒ Boolean
rw
Queries the primary key column’s value.
Instance Method Summary
-
#id_before_type_cast
Returns the primary key column’s value before type cast.
-
#id_in_database
Returns the primary key column’s value from the database.
-
#id_was
Returns the primary key column’s previous value.
-
#to_key
Returns this record’s primary key value wrapped in an array if one is available.
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.
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 20
def id return _read_attribute(@primary_key) unless @primary_key.is_a?(Array) @primary_key.map { |pk| _read_attribute(pk) } 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.
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 34
def id=(value) if self.class.composite_primary_key? raise TypeError, "Expected value matching #{self.class.primary_key.inspect}, got #{value.inspect}." unless value.is_a?(Enumerable) @primary_key.zip(value) { |attr, value| _write_attribute(attr, value) } else _write_attribute(@primary_key, value) end 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.
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 45
def id? if self.class.composite_primary_key? @primary_key.all? { |col| _query_attribute(col) } else _query_attribute(@primary_key) end end
Instance Method Details
#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.
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 55
def id_before_type_cast if self.class.composite_primary_key? @primary_key.map { |col| attribute_before_type_cast(col) } else attribute_before_type_cast(@primary_key) end 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.
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 75
def id_in_database if self.class.composite_primary_key? @primary_key.map { |col| attribute_in_database(col) } else attribute_in_database(@primary_key) end 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.
# File 'activerecord/lib/active_record/attribute_methods/primary_key.rb', line 65
def id_was if self.class.composite_primary_key? @primary_key.map { |col| attribute_was(col) } else attribute_was(@primary_key) end end
#to_key
Returns this record’s primary key value wrapped in an array if one is available.