diff --git a/actionpack/lib/action_controller/metal/strong_parameters.rb b/actionpack/lib/action_controller/metal/strong_parameters.rb index 7d5781b23a0ce13c560fcd0bc1b3af3619406717..9f78e679c681e6b00bb5b62e54780ac3fb9acb11 100644 --- a/actionpack/lib/action_controller/metal/strong_parameters.rb +++ b/actionpack/lib/action_controller/metal/strong_parameters.rb @@ -196,7 +196,7 @@ def require(key) def permit(*filters) params = self.class.new - filters.each do |filter| + filters.flatten.each do |filter| case filter when Symbol, String then if has_key?(filter) diff --git a/actionpack/test/controller/parameters/parameters_permit_test.rb b/actionpack/test/controller/parameters/parameters_permit_test.rb index ad970f0a9a0dfaa5077f432565aba2d3e257f88b..a13ffab9c045f9b4f22c4c972785ac4251f21b3b 100644 --- a/actionpack/test/controller/parameters/parameters_permit_test.rb +++ b/actionpack/test/controller/parameters/parameters_permit_test.rb @@ -1,4 +1,5 @@ require 'abstract_unit' +require 'debugger' require 'action_controller/metal/strong_parameters' class ParametersPermitTest < ActiveSupport::TestCase @@ -77,4 +78,8 @@ class ParametersPermitTest < ActiveSupport::TestCase ActionController::Parameters.permit_all_parameters = false end end + + test "permitting parameters as an array" do + assert_equal "32", @params[:person].permit([ :age ])[:age] + end end