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