Method: ActiveRecord::AttributeMethods::Write#write_attribute
- Defined in:
- lib/active_record/attribute_methods/write.rb
#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 35 36 37 38 39 |
# File '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' && self.class.primary_key @attributes_cache.delete(attr_name) column = column_for_attribute(attr_name) unless column || @attributes.has_key?(attr_name) ActiveSupport::Deprecation.warn( "You're trying to create an attribute `#{attr_name}'. Writing arbitrary " \ "attributes on a model is deprecated. Please just use `attr_writer` etc." ) end @attributes[attr_name] = type_cast_attribute_for_write(column, value) end |