aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/coders/yaml_column.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/coders/yaml_column.rb')
-rw-r--r--activerecord/lib/active_record/coders/yaml_column.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/coders/yaml_column.rb b/activerecord/lib/active_record/coders/yaml_column.rb
index 77af540c3e..66a0c83c41 100644
--- a/activerecord/lib/active_record/coders/yaml_column.rb
+++ b/activerecord/lib/active_record/coders/yaml_column.rb
@@ -15,7 +15,13 @@ module ActiveRecord
end
def dump(obj)
- YAML.dump(obj) unless obj.nil?
+ return if obj.nil?
+
+ unless obj.is_a?(object_class)
+ raise SerializationTypeMismatch,
+ "Attribute was supposed to be a #{object_class}, but was a #{obj.class}. -- #{obj.inspect}"
+ end
+ YAML.dump obj
end
def load(yaml)