aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-01-21 17:34:55 -0500
committerRafael França <rafaelmfranca@gmail.com>2016-01-21 17:34:55 -0500
commit6fcc3c47eb363d0d3753ee284de2fbc68df03194 (patch)
tree96d1e8f623748e6f542b85d5a95af2aecbe4ffc6 /actionpack
parent77e1b0eb3a16581924e175a685da1d8cc2319644 (diff)
parent627f736cc0a1a7b32e67303b92b963d4b6d9e68c (diff)
downloadrails-6fcc3c47eb363d0d3753ee284de2fbc68df03194.tar.gz
rails-6fcc3c47eb363d0d3753ee284de2fbc68df03194.tar.bz2
rails-6fcc3c47eb363d0d3753ee284de2fbc68df03194.zip
Merge pull request #23167 from maclover7/fix-21032
Fix `ActionController::Parameters#==` bug
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG.md4
-rw-r--r--actionpack/lib/action_controller/metal/strong_parameters.rb6
-rw-r--r--actionpack/test/controller/parameters/accessors_test.rb6
3 files changed, 15 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index f6ffe45490..4af5ccbbb8 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,3 +1,7 @@
+* Fix `ActionController::Parameters==`
+
+ *Jon Moss*
+
* Response etags to always be weak: Prefixes 'W/' to value returned by
`ActionDispatch::Http::Cache::Response#etag=`, such that etags set in
`fresh_when` and `stale?` are weak.
diff --git a/actionpack/lib/action_controller/metal/strong_parameters.rb b/actionpack/lib/action_controller/metal/strong_parameters.rb
index e9aa0aae37..ba03430930 100644
--- a/actionpack/lib/action_controller/metal/strong_parameters.rb
+++ b/actionpack/lib/action_controller/metal/strong_parameters.rb
@@ -160,7 +160,11 @@ module ActionController
if other_hash.respond_to?(:permitted?)
super
else
- @parameters == other_hash
+ if other_hash.is_a?(Hash)
+ @parameters == other_hash.with_indifferent_access
+ else
+ @parameters == other_hash
+ end
end
end
diff --git a/actionpack/test/controller/parameters/accessors_test.rb b/actionpack/test/controller/parameters/accessors_test.rb
index a8f4d877a6..bd43ff7697 100644
--- a/actionpack/test/controller/parameters/accessors_test.rb
+++ b/actionpack/test/controller/parameters/accessors_test.rb
@@ -128,4 +128,10 @@ class ParametersAccessorsTest < ActiveSupport::TestCase
assert_not @params.values_at(:person).first.permitted?
assert_not @params[:person].values_at(:name).first.permitted?
end
+
+ test "equality with another hash works" do
+ hash1 = { foo: :bar }
+ params1 = ActionController::Parameters.new(hash1)
+ assert(params1 == hash1)
+ end
end