Rails:将嵌套参数/允许参数/嵌套表单列入白名单

时间:2017-08-27 21:47:35

标签: ruby-on-rails parameters nested-forms

我已经在很长一段时间内修改了Rails 5.0许可功能,但我无法做到正确并且真的需要一些帮助:

我有这个白名单功能。并且在执行时我得到以下响应:

  

未经许可的参数:studio_users_attributes

我有这个白名单功能

def studio_params
  params.require(:studio).permit(:name, :name_long, :address, :address2,
                                 :zip, :city, :country, :phone,
                                 :entity_id, { studio_users_attributes: [] } ) 
end

params方法返回以下内容:

{"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"VZTPSpsmNJxcqc[...]", 
 "studio"=>{"studio_users_attributes"=>{"0"=>{"viewing_rights"=>"Nur eigene", 
 "id"=>"4"}, "1"=>{"viewing_rights"=>"Alle", "id"=>"5"}}}, 
 "commit"=>"Studio aktualisieren", "controller"=>"studios",
 "action"=>"update", "id"=>"2"
}

一些帮助将受到高度赞赏。

菲利普

2 个答案:

答案 0 :(得分:0)

在控制器中,您使用studio_users_params

但是你发送了studio_users_attributes

答案 1 :(得分:0)

经过一些实验,我设法解决了。

对于嵌套参数,我必须将键显式添加到嵌套哈希:

def studio_params
params.require(:studio).permit(:name, :name_long, :address, :address2, :zip, 
                               :city, :country, :phone, :entity_id, 
                                studio_users_attributes: [:id, :viewing_rights] ) 

将散列留空(studio_users_attributes:[])仍然会导致

  

“未经许可的参数:studio_users_attributes”