instance method
write_attribute
Ruby on Rails 4.0.13
Since v3.0.20Signature
write_attribute(attr_name, value)
Updates the attribute identified by attr_name with the specified value. Empty strings for fixnum and float columns are turned into nil.
Parameters
-
attr_namereq -
valuereq
Source
# File activerecord/lib/active_record/attribute_methods/write.rb, line 32
def write_attribute(attr_name, value)
attr_name = attr_name.to_s
attr_name = self.class.primary_key if attr_name == 'id' && self.class.primary_key
@attributes_cache.delete(attr_name)
column = column_for_attribute(attr_name)
# If we're dealing with a binary column, write the data to the cache
# so we don't attempt to typecast multiple times.
if column && column.binary?
@attributes_cache[attr_name] = value
end
if column || @attributes.has_key?(attr_name)
@attributes[attr_name] = type_cast_attribute_for_write(column, value)
else
raise ActiveModel::MissingAttributeError, "can't write unknown attribute `#{attr_name}'"
end
end
Defined in activerecord/lib/active_record/attribute_methods/write.rb line 32
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::AttributeMethods::Write