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  %>