diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-06-09 16:13:48 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-06-09 16:13:48 -0300 |
commit | ddb0b4a474de99fa8474e2111a05dd4bba7c6f0e (patch) | |
tree | 504334562aa90a23f286616fcb36604628182e06 /activerecord/lib/active_record/attribute_methods/write.rb | |
parent | 19f1cfbb03f8230f5d30cc91c41c3f719813da9d (diff) | |
parent | c93dbfef36c9b095121650beec2362de42d6b715 (diff) | |
download | rails-ddb0b4a474de99fa8474e2111a05dd4bba7c6f0e.tar.gz rails-ddb0b4a474de99fa8474e2111a05dd4bba7c6f0e.tar.bz2 rails-ddb0b4a474de99fa8474e2111a05dd4bba7c6f0e.zip |
Merge pull request #15591 from sgrif/sg-rm-write-attribute
Make `_before_type_cast` actually be before type cast
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods/write.rb')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/write.rb | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/write.rb b/activerecord/lib/active_record/attribute_methods/write.rb index 5203b30462..b72a6219b0 100644 --- a/activerecord/lib/active_record/attribute_methods/write.rb +++ b/activerecord/lib/active_record/attribute_methods/write.rb @@ -70,7 +70,7 @@ module ActiveRecord attr_name = attr_name.to_s attr_name = self.class.primary_key if attr_name == 'id' && self.class.primary_key @attributes.delete(attr_name) - column = column_for_attribute(attr_name) + column = type_for_attribute(attr_name) unless has_attribute?(attr_name) || self.class.columns_hash.key?(attr_name) raise ActiveModel::MissingAttributeError, "can't write unknown attribute `#{attr_name}'" @@ -80,13 +80,11 @@ module ActiveRecord # so we don't attempt to typecast multiple times. if column.binary? @attributes[attr_name] = value + elsif should_type_cast + @attributes[attr_name] = column.type_cast_from_user(value) end - if should_type_cast - @raw_attributes[attr_name] = column.type_cast_for_write(value) - else - @raw_attributes[attr_name] = value - end + @raw_attributes[attr_name] = value end end end |