Method: ActiveRecord::AttributeMethods::CompositePrimaryKey#id=

Defined in:
activerecord/lib/active_record/attribute_methods/composite_primary_key.rb

#id=(value) ⇒ Object

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



26
27
28
29
30
31
32
33
# File 'activerecord/lib/active_record/attribute_methods/composite_primary_key.rb', line 26

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
    super
  end
end