具有强参数的嵌套参数

Nested params with Strong Parameters

在 Rails 5.1 应用程序中,在我看来,我将以下内容发送到我的控制器

"area"=>{"name"=>"name", "project_id"=>"123", "owners"=>{"step2"=>["345", "678"], "step3"=>["123"]}}

如何使用强参数让 owners 的全部内容通过?

我已经尝试了 Rails 4 - Strong Parameters - Nested Objects 中的建议,但似乎没有任何效果。

params.require(:area).permit(:name, :project_id, :owners)
params.require(:area).permit(:name, :project_id, owners: [])
params.require(:area).permit(:name, :project_id, owners: []).tap do |whitelisted|
 whitelisted[:owners] = params[:application_area][:owners]
end #=> ActionController::UnfilteredParameters - unable to convert unpermitted parameters to hash:

owners 散列的内容可能因请求而异;即下次我可以发送

"area"=>{"name"=>"name", "project_id"=>"123", "owners"=>{"color"=>["345", "678"], "shape"=>["123"]}}

您必须将所有者的所有可能值列入白名单

params.require(:area).permit(:name, :project_id, owners: [step2: [], color: [], step2: [], step3: []])

好的,您是否尝试过 rails 5 的动态内容?

params.require(:area).permit(:name, :project_id, :owners => {})