Active Record Attribute Methods Primary Key
Namespace
Module
Methods
Instance Public methods
id()
Returns the primary key column’s value. If the primary key is composite, returns an array of the primary key column values.
📝 Source code
# 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
🔎 See on GitHub
id=(value)
Sets the primary key column’s value. If the primary key is composite, raises TypeError when the set value not enumerable.
📝 Source code
# 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
🔎 See on GitHub
id?()
Queries the primary key column’s value. If the primary key is composite, all primary key column values must be queryable.
📝 Source code
# 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
🔎 See on GitHub
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.
📝 Source code
# 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
🔎 See on GitHub
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.
📝 Source code
# 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
🔎 See on GitHub
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.
📝 Source code
# 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
🔎 See on GitHub
to_key()
Returns this record’s primary key value wrapped in an array if one is available.
📝 Source code
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 13
def to_key
key = id
Array(key) if key
end
🔎 See on GitHub