aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/attribute_methods
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-05-30 11:26:59 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2012-05-30 11:26:59 -0700
commit1b075220ef59bbee59bb768acbc0d92e59ca38d6 (patch)
treeff31a015e259dcd5fab379fc3feb4ae451cec692 /activerecord/lib/active_record/attribute_methods
parent7c1b61e50ee44abd4f6440067ec11f7ccd01df3c (diff)
parentd09b2fd09dbd8f74d1d2909c7e931fb0a664b315 (diff)
downloadrails-1b075220ef59bbee59bb768acbc0d92e59ca38d6.tar.gz
rails-1b075220ef59bbee59bb768acbc0d92e59ca38d6.tar.bz2
rails-1b075220ef59bbee59bb768acbc0d92e59ca38d6.zip
Merge pull request #5810 from kennyj/fix_5797
Fix #5797. Error calling dup method on AR model with serialized field
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods')
-rw-r--r--activerecord/lib/active_record/attribute_methods/serialization.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/serialization.rb b/activerecord/lib/active_record/attribute_methods/serialization.rb
index 165785c8fb..706fbf0546 100644
--- a/activerecord/lib/active_record/attribute_methods/serialization.rb
+++ b/activerecord/lib/active_record/attribute_methods/serialization.rb
@@ -72,12 +72,13 @@ module ActiveRecord
self.serialized_attributes = serialized_attributes.merge(attr_name.to_s => coder)
end
- def initialize_attributes(attributes) #:nodoc:
- super
+ def initialize_attributes(attributes, options = {}) #:nodoc:
+ serialized = (options.delete(:serialized) { true }) ? :serialized : :unserialized
+ super(attributes, options)
serialized_attributes.each do |key, coder|
if attributes.key?(key)
- attributes[key] = Attribute.new(coder, attributes[key], :serialized)
+ attributes[key] = Attribute.new(coder, attributes[key], serialized)
end
end