module ActiveRecord::AttributeMethods::PrimaryKey
Методы атрибутов Active Record – первичный ключ
Открытые методы экземпляра
# 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 Возвращает значение столбца первичного ключа. Если первичный ключ составной, возвращает массив значений столбцов первичного ключа.
# 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 Устанавливает значение столбца первичного ключа. Если первичный ключ составной, генерирует исключение TypeError, если заданное значение не является перечисляемым.
# 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 Запрашивает значение столбца первичного ключа. Если первичный ключ составной, все значения столбцов первичного ключа должны быть запросимы.
# 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 Возвращает значение столбца первичного ключа до приведения к типу. Если первичный ключ составной, возвращает массив значений столбцов первичного ключа до приведения к типу.
# 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 Возвращает значение столбца первичного ключа из базы данных. Если первичный ключ составной, возвращает массив значений столбцов первичного ключа из базы данных.
# 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 Возвращает предыдущее значение столбца первичного ключа. Если первичный ключ составной, возвращает массив предыдущих значений столбцов первичного ключа.
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 13 def to_key key = id Array(key) if key end
Возвращает значение первичного ключа записи, заключенное в массив, если оно доступно.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.