aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2015-01-24 15:08:11 +0100
committerYves Senn <yves.senn@gmail.com>2015-01-24 15:08:11 +0100
commitc8e39e2fd439c0d3a6cedb858229fc93f430c295 (patch)
tree484c6237006551939897c575a85465bd5ee5aeb8
parent9bf9097973c083b23305fe3dddfb359f7049fec9 (diff)
parentfb7d95b21222f762eb4dded727a5999fb198fdfb (diff)
downloadrails-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.rb3
-rw-r--r--activemodel/test/cases/errors_test.rb2
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