diff options
author | Sean Griffin <sean@thoughtbot.com> | 2014-05-30 13:06:05 -0700 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2014-06-01 10:55:23 -0600 |
commit | 93734629a33591486b76e3b9884ea37650934eef (patch) | |
tree | dd4dd281a5db237c7e67ac01f1bfc0bbb725f98b /activerecord/lib/active_record | |
parent | a70b9ba62ed323347fe76be47afd80ee60729d9b (diff) | |
download | rails-93734629a33591486b76e3b9884ea37650934eef.tar.gz rails-93734629a33591486b76e3b9884ea37650934eef.tar.bz2 rails-93734629a33591486b76e3b9884ea37650934eef.zip |
Don't change values in `@raw_attributes` during serialization
During `init_with`, the attributes given to the coder will be placed
into `@raw_attributes`. As such, we should read from `@raw_attributes`
when encoding, rather than `@attributes`, which has been type cast.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods.rb | 2 | ||||
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/serialization.rb | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb index fb6473b7c7..d2a8006069 100644 --- a/activerecord/lib/active_record/attribute_methods.rb +++ b/activerecord/lib/active_record/attribute_methods.rb @@ -289,7 +289,7 @@ module ActiveRecord # Placeholder so it can be overriden when needed by serialization def attributes_for_coder # :nodoc: - attributes + attributes_before_type_cast end # Returns an <tt>#inspect</tt>-like string for the value of the diff --git a/activerecord/lib/active_record/attribute_methods/serialization.rb b/activerecord/lib/active_record/attribute_methods/serialization.rb index b247bf8a45..e8a52719ef 100644 --- a/activerecord/lib/active_record/attribute_methods/serialization.rb +++ b/activerecord/lib/active_record/attribute_methods/serialization.rb @@ -138,7 +138,7 @@ module ActiveRecord attrs[name] = if self.class.serialized_attributes.include?(name) @raw_attributes[name].serialized_value else - read_attribute(name) + read_attribute_before_type_cast(name) end end end |