diff options
author | Guten <ywzhaifei@gmail.com> | 2011-08-29 23:29:11 +0800 |
---|---|---|
committer | Piotr Sarnacki <drogus@gmail.com> | 2012-03-26 21:57:39 +0200 |
commit | 9637de6b472b05a09fe6d28d973b4729e3ea4615 (patch) | |
tree | f7c24fd7a10451f9f8bdd5eb49bfa07473296d4f /activerecord/lib | |
parent | 2e8129e87afe30dc37a4da93c0bb36afbeb6464d (diff) | |
download | rails-9637de6b472b05a09fe6d28d973b4729e3ea4615.tar.gz rails-9637de6b472b05a09fe6d28d973b4729e3ea4615.tar.bz2 rails-9637de6b472b05a09fe6d28d973b4729e3ea4615.zip |
ActiveRecord::Coders::YAMLColumn#dump should raise an error
closes #2737
Conflicts:
activerecord/lib/active_record/coders/yaml_column.rb
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/coders/yaml_column.rb | 8 |
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) |