Merge pull request #32593 from sdhull/fix-strong-params-permit-bang
Fixes StrongParameters `permit!` to work with nested arrays
This commit is contained in:
commit
0bf3e769e7
@ -374,7 +374,7 @@ def permitted?
|
||||
# Person.new(params) # => #<Person id: nil, name: "Francesco">
|
||||
def permit!
|
||||
each_pair do |key, value|
|
||||
Array.wrap(value).each do |v|
|
||||
Array.wrap(value).flatten.each do |v|
|
||||
v.permit! if v.respond_to? :permit!
|
||||
end
|
||||
end
|
||||
|
@ -353,12 +353,15 @@ def walk_permitted(params)
|
||||
assert_equal "Jonas", @params[:person][:family][:brother]
|
||||
end
|
||||
|
||||
test "permit is recursive" do
|
||||
test "permit! is recursive" do
|
||||
@params[:nested_array] = [[{ x: 2, y: 3 }, { x: 21, y: 42 }]]
|
||||
@params.permit!
|
||||
assert_predicate @params, :permitted?
|
||||
assert_predicate @params[:person], :permitted?
|
||||
assert_predicate @params[:person][:name], :permitted?
|
||||
assert_predicate @params[:person][:addresses][0], :permitted?
|
||||
assert_predicate @params[:nested_array][0][0], :permitted?
|
||||
assert_predicate @params[:nested_array][0][1], :permitted?
|
||||
end
|
||||
|
||||
test "permitted takes a default value when Parameters.permit_all_parameters is set" do
|
||||
|
Loading…
Reference in New Issue
Block a user