aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/base.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/base.rb')
-rwxr-xr-xactiverecord/lib/active_record/base.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index 3ba1cb26d1..36775d74b5 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -643,7 +643,7 @@ module ActiveRecord #:nodoc:
# Specifies that the attribute by the name of +attr_name+ should be serialized before saving to the database and unserialized
# after loading from the database. The serialization is done through YAML. If +class_name+ is specified, the serialized
- # object must be of that class on retrieval or +SerializationTypeMismatch+ will be raised.
+ # object must be of that class on retrieval, or nil. Otherwise, +SerializationTypeMismatch+ will be raised.
def serialize(attr_name, class_name = Object)
serialized_attributes[attr_name.to_s] = class_name
end
@@ -2110,7 +2110,7 @@ module ActiveRecord #:nodoc:
def unserialize_attribute(attr_name)
unserialized_object = object_from_yaml(@attributes[attr_name])
- if unserialized_object.is_a?(self.class.serialized_attributes[attr_name])
+ if unserialized_object.is_a?(self.class.serialized_attributes[attr_name]) || unserialized_object.nil?
@attributes[attr_name] = unserialized_object
else
raise SerializationTypeMismatch,