diff options
author | Sean Griffin <sean@thoughtbot.com> | 2014-06-07 11:03:36 -0600 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2014-06-07 11:03:36 -0600 |
commit | 105e0304b9d7eab2f5e570fc23fbc4e1d3f80823 (patch) | |
tree | 35037a8197080c2649aabfc572d70ae41460b117 /activerecord/lib/active_record/core.rb | |
parent | 287e926d564bbe8db6baad85d35276042e0dc47a (diff) | |
download | rails-105e0304b9d7eab2f5e570fc23fbc4e1d3f80823.tar.gz rails-105e0304b9d7eab2f5e570fc23fbc4e1d3f80823.tar.bz2 rails-105e0304b9d7eab2f5e570fc23fbc4e1d3f80823.zip |
Move conditionals about freezing closer to the definition of `freeze`
Reduces the number of places that care about the internals of how we
store and type cast attributes. We do not need to go through the
dup/freeze dance, as you couldn't have saved a frozen new record anyway,
and that is the only time we would end up modifying the frozen hash.
Diffstat (limited to 'activerecord/lib/active_record/core.rb')
-rw-r--r-- | activerecord/lib/active_record/core.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb index c996e93076..79388f53b5 100644 --- a/activerecord/lib/active_record/core.rb +++ b/activerecord/lib/active_record/core.rb @@ -546,5 +546,11 @@ module ActiveRecord def init_attributes(attributes, options) assign_attributes(attributes) end + + def thaw + if frozen? + @raw_attributes = @raw_attributes.dup + end + end end end |