Module: ActiveRecord::AttributeMethods::Write

Extended by:
ActiveSupport::Concern
Included in:
Dirty
Defined in:
activerecord/lib/active_record/attribute_methods/write.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Methods included from ActiveSupport::Concern

append_features, extended, included

Instance Method Details

#write_attribute(attr_name, value) ⇒ Object Also known as: raw_write_attribute

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


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

def write_attribute(attr_name, value)
  attr_name = attr_name.to_s
  attr_name = self.class.primary_key if attr_name == 'id'
  @attributes_cache.delete(attr_name)
  if (column = column_for_attribute(attr_name)) && column.number?
    @attributes[attr_name] = convert_number_column_value(value)
  else
    @attributes[attr_name] = value
  end
end