0
我有一个表格,目的在关联更新对象的集合:白名单参数从嵌套形式的多个对象
<%= form_tag(url: update_parent_children_path(parent_id: @parent.id), method: :put) do %>
<% @children.each do |child| %>
<%= fields_for "children[]", child do |cf| %>
.... Fields for form
在参数方面,这给人的印象是:
params[:children] -->
{"1" =>{"foo"=>"x", "bar"=>"y", "baz"=>"z"},
"2" =>{"foo"=>"x", "bar"=>"y", "baz"=>"z"},
"3" =>{"foo"=>"x", "bar"=>"y", "baz"=>"z"}}
我知道将对象的一个实例列入白名单,我会使用:
params.require(:child).permit(:foo, :bar, :baz)
是否有类似的方法允许儿童参数的完整列表?
为了参考,代码的更新块我将使用:
def update_children_on_parent
@children.each do |child|
child_params = update_params.select{|key, value| key == child.id}
child.update(child_params)
end
end
其中update_params是白名单孩子参数列表
在父控制器'params.require(:亲本).permit(:孩子=> {:FOO,:巴} '应该允许你传递嵌套参数,并且阅读'accept_nested_attributes_for' – toddmetheny