aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/attribute_methods/serialization.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-12-22 13:11:44 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2011-12-22 13:11:44 -0700
commitf2e65b7d54c3034b35a5f248f2482e760cd85cd5 (patch)
tree90acf9d5eb74b74bc5b9d96cd9b93f0151497d0e /activerecord/lib/active_record/attribute_methods/serialization.rb
parent2bc3f81c89c1cd7444d476411bef626173172dc0 (diff)
parent6758941898516deca3d4b9ccf2a9eaf46f2f4080 (diff)
downloadrails-f2e65b7d54c3034b35a5f248f2482e760cd85cd5.tar.gz
rails-f2e65b7d54c3034b35a5f248f2482e760cd85cd5.tar.bz2
rails-f2e65b7d54c3034b35a5f248f2482e760cd85cd5.zip
Merge branch '3-2-stable' of github.com:rails/rails into 3-2-stable
* '3-2-stable' of github.com:rails/rails: Use sass-rails >= 3.2.2 for new apps Make ActiveRecord::Relation#pluck work with serialized attributes Make read_attribute code path accessible at the class level
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods/serialization.rb')
-rw-r--r--activerecord/lib/active_record/attribute_methods/serialization.rb20
1 files changed, 12 insertions, 8 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/serialization.rb b/activerecord/lib/active_record/attribute_methods/serialization.rb
index 0a4432506f..2ffd91f796 100644
--- a/activerecord/lib/active_record/attribute_methods/serialization.rb
+++ b/activerecord/lib/active_record/attribute_methods/serialization.rb
@@ -58,6 +58,18 @@ module ActiveRecord
self.serialized_attributes = serialized_attributes.merge(attr_name.to_s => coder)
end
+ def initialize_attributes(attributes) #:nodoc:
+ super
+
+ serialized_attributes.each do |key, coder|
+ if attributes.key?(key)
+ attributes[key] = Attribute.new(coder, attributes[key], :serialized)
+ end
+ end
+
+ attributes
+ end
+
private
def attribute_cast_code(attr_name)
@@ -69,14 +81,6 @@ module ActiveRecord
end
end
- def set_serialized_attributes
- self.class.serialized_attributes.each do |key, coder|
- if @attributes.key?(key)
- @attributes[key] = Attribute.new(coder, @attributes[key], :serialized)
- end
- end
- end
-
def type_cast_attribute_for_write(column, value)
if column && coder = self.class.serialized_attributes[column.name]
Attribute.new(coder, value, :unserialized)