在Rails 5.1应用程序中,从我的视角来看,我将以下内容发送给我的控制器
“area”=> {“name”=>“name”,“project_id”=>“123”, “所有者”=> {“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”, “所有者”=> {“color”=> [“345”,“678”],“形状”=> [“123”]}}
答案 0 :(得分:2)
您必须为所有者列出所有可能值的白名单
params.require(:area).permit(:name, :project_id, owners: [step2: [], color: [], step2: [], step3: []])
好的,您是否尝试使用rails 5进行动态内容?
params.require(:area).permit(:name,:project_id,:owners => {})