aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-09-28 17:31:24 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-09-28 17:31:24 -0700
commit37c721aa8334ba5a6398c6c323c32d6e6c781fe7 (patch)
tree6c32bdea44f27660d9ef2582a791931ed7bad2c2 /actionpack/lib
parent4b89734e8ee586c8f05de1c4a4304fd1e71e63dd (diff)
parent277918e61afaec64c1378194ea272f938beaa8ad (diff)
downloadrails-37c721aa8334ba5a6398c6c323c32d6e6c781fe7.tar.gz
rails-37c721aa8334ba5a6398c6c323c32d6e6c781fe7.tar.bz2
rails-37c721aa8334ba5a6398c6c323c32d6e6c781fe7.zip
Merge pull request #12354 from kennyj/fix_12293
Closes #12293. Strong parameters should permit nested number as key.
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_controller/metal/strong_parameters.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/strong_parameters.rb b/actionpack/lib/action_controller/metal/strong_parameters.rb
index b495ab3f0f..66403d533c 100644
--- a/actionpack/lib/action_controller/metal/strong_parameters.rb
+++ b/actionpack/lib/action_controller/metal/strong_parameters.rb
@@ -334,7 +334,7 @@ module ActionController
def each_element(object)
if object.is_a?(Array)
object.map { |el| yield el }.compact
- elsif object.is_a?(Hash) && object.keys.all? { |k| k =~ /\A-?\d+\z/ }
+ elsif fields_for_style?(object)
hash = object.class.new
object.each { |k,v| hash[k] = yield v }
hash
@@ -343,6 +343,10 @@ module ActionController
end
end
+ def fields_for_style?(object)
+ object.is_a?(Hash) && object.all? { |k, v| k =~ /\A-?\d+\z/ && v.is_a?(Hash) }
+ end
+
def unpermitted_parameters!(params)
unpermitted_keys = unpermitted_keys(params)
if unpermitted_keys.any?