module ActiveRecord::AttributeMethods::Write

def attribute=(attribute_name, value)

Handle *= for method_missing.
def attribute=(attribute_name, value)
  write_attribute(attribute_name, value)
end

def write_attribute(attr_name, value)

for fixnum and float columns are turned into +nil+.
Updates the attribute identified by attr_name with the specified +value+. Empty strings
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