Ruby on rails Rails自定义选择名称搞乱了强参数?
我有一张“组”的表格,上面有一个选择框,如下所示:Ruby on rails Rails自定义选择名称搞乱了强参数?,ruby-on-rails,Ruby On Rails,我有一张“组”的表格,上面有一个选择框,如下所示: <%= f.text_field :description %> <%= select_tag 'custom_people', People.all %> 当表单提交时,我可以在我的参数中看到custom_人员: 参数:{“utf8”=>“✓", "真实性\u令牌“=>”, “组”=>{“描述”=>“某物”},“自定义人”=>“1”, “提交”=>“保存”} 但在我的控制器操作组中,参数只得到 {
<%= f.text_field :description %>
<%= select_tag 'custom_people', People.all %>
当表单提交时,我可以在我的参数中看到custom_人员:
参数:{“utf8”=>“✓", "真实性\u令牌“=>”,
“组”=>{“描述”=>“某物”},“自定义人”=>“1”,
“提交”=>“保存”}
但在我的控制器操作组中,参数只得到
{“描述”=>“某物”}
这是因为select_标记有一个自定义名称,我需要在强参数中使用不同的语法吗?如何解决此问题?您需要手动命名
选择标签来解决此问题。使用下面的代码,您现在可以在组:{..}
参数中获得自定义的人
<%= select_tag 'group[custom_people]', People.all %>
您确定这些是日志中显示的实际参数吗?我相信这些都不是。请再次检查。您要使用f。选择:custom\u people,people.all
。请参阅@Pavan yes,这些是实际参数和日志中“puts group_params”的输出。我只是删除了一些与问题无关的附加参数,以保持它的焦点/readable@JohanWentholt在这种情况下,我需要使用select_标记,因为select元素需要自定义名称,所以我不能使用f。select@phauwn为什么不使用f.select
来修复它的命名约定获取错误:未知属性“custom_people”表示组,假设这是因为它不是一个模型属性,正如我前面提到的。因此它意味着现在它出现在组:{}
参数中。那你想用它做什么?当您试图在数据库中保存时出现错误。@phauwn'group[custom_people]
使其可以放入“group”=>{“description”=>“something”,“custom_people”=>“1”,},
。。现在,您可以检查组参数
中的内容。。。那么你下一步想做什么?第一个问题解决了…是的,你是对的。。。明白了,我今天很慢;)。谢谢,我会把你的答案标对的。
<%= select_tag 'group[custom_people]', People.all %>