diff options
author | Sean Griffin <sean@thoughtbot.com> | 2014-12-23 09:38:48 -0700 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2014-12-23 09:40:01 -0700 |
commit | e35221cfd948098c6fabdff5fed3877edb8921d3 (patch) | |
tree | a929aae400a645ed8bb94e2bfd00d5493f33c326 /activerecord/lib/active_record | |
parent | d26704a15f88d384dd282425daa832affdb5f8c1 (diff) | |
download | rails-e35221cfd948098c6fabdff5fed3877edb8921d3.tar.gz rails-e35221cfd948098c6fabdff5fed3877edb8921d3.tar.bz2 rails-e35221cfd948098c6fabdff5fed3877edb8921d3.zip |
Don't treat `nil` as changed in serialized types
We were ignoring the `default_value?` escape clause in the serialized
type, which caused the default value to always be treated as changed.
Fixes #18169
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/type/serialized.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/type/serialized.rb b/activerecord/lib/active_record/type/serialized.rb index 3191a868ef..3cac03464e 100644 --- a/activerecord/lib/active_record/type/serialized.rb +++ b/activerecord/lib/active_record/type/serialized.rb @@ -29,7 +29,7 @@ module ActiveRecord def changed_in_place?(raw_old_value, value) return false if value.nil? - subtype.changed_in_place?(raw_old_value, coder.dump(value)) + subtype.changed_in_place?(raw_old_value, type_cast_for_database(value)) end def accessor |