module ActiveRecord::AttributeMethods::Write

Public Instance Methods

write_attribute(attr_name, value) click to toggle source

Updates the attribute identified by attr_name with the specified value. Empty strings for Integer and Float columns are turned into nil.

# File lib/active_record/attribute_methods/write.rb, line 35
def write_attribute(attr_name, value)
  name = if self.class.attribute_alias?(attr_name)
    self.class.attribute_alias(attr_name).to_s
  else
    attr_name.to_s
  end

  primary_key = self.class.primary_key
  name = primary_key if name == "id".freeze && primary_key
  sync_with_transaction_state if name == primary_key
  _write_attribute(name, value)
end

Private Instance Methods

attribute=(attribute_name, value) click to toggle source

Handle *= for method_missing.

# File lib/active_record/attribute_methods/write.rb, line 63
def attribute=(attribute_name, value)
  _write_attribute(attribute_name, value)
end
write_attribute_without_type_cast(attr_name, value) click to toggle source
# File lib/active_record/attribute_methods/write.rb, line 56
def write_attribute_without_type_cast(attr_name, value)
  name = attr_name.to_s
  @attributes.write_cast_value(name, value)
  value
end