diff options
author | Yves Senn <yves.senn@gmail.com> | 2015-01-24 15:08:11 +0100 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2015-01-24 15:08:11 +0100 |
commit | c8e39e2fd439c0d3a6cedb858229fc93f430c295 (patch) | |
tree | 484c6237006551939897c575a85465bd5ee5aeb8 | |
parent | 9bf9097973c083b23305fe3dddfb359f7049fec9 (diff) | |
parent | fb7d95b21222f762eb4dded727a5999fb198fdfb (diff) | |
download | rails-c8e39e2fd439c0d3a6cedb858229fc93f430c295.tar.gz rails-c8e39e2fd439c0d3a6cedb858229fc93f430c295.tar.bz2 rails-c8e39e2fd439c0d3a6cedb858229fc93f430c295.zip |
Merge pull request #18670 from morgoth/fix-duplicating-errors-details
Fixed duplicating ActiveModel::Errors#details
-rw-r--r-- | activemodel/lib/active_model/errors.rb | 3 | ||||
-rw-r--r-- | activemodel/test/cases/errors_test.rb | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/activemodel/lib/active_model/errors.rb b/activemodel/lib/active_model/errors.rb index 912448e43c..a809c72ccd 100644 --- a/activemodel/lib/active_model/errors.rb +++ b/activemodel/lib/active_model/errors.rb @@ -2,6 +2,7 @@ require 'active_support/core_ext/array/conversions' require 'active_support/core_ext/string/inflections' +require 'active_support/core_ext/object/deep_dup' module ActiveModel # == Active \Model \Errors @@ -77,7 +78,7 @@ module ActiveModel def initialize_dup(other) # :nodoc: @messages = other.messages.dup - @details = other.details.dup + @details = other.details.deep_dup super end diff --git a/activemodel/test/cases/errors_test.rb b/activemodel/test/cases/errors_test.rb index 9cfba9812b..17dbb817d0 100644 --- a/activemodel/test/cases/errors_test.rb +++ b/activemodel/test/cases/errors_test.rb @@ -347,7 +347,7 @@ class ErrorsTest < ActiveModel::TestCase errors.add(:name, :invalid) errors_dup = errors.dup errors_dup.add(:name, :taken) - assert_not_same errors_dup.details, errors.details + assert_not_equal errors_dup.details, errors.details end test "delete removes details on given attribute" do |