首页 > 解决方案 > 表格上相同型号的两个选择框

问题描述

所以我有一个组模型的表格

has_many :people, through: :group_persons   
has_many :group_persons

在表单上,​​我希望有两个选择框,用户可以在其中从同一个人员列表中进行选择:

<%= f.label "Sub Group A" %>
<%= f.select :group_person_ids, Person.all %>

<%= f.label "Sub Group B" %>
<%= f.select :group_person_ids, Person.all %>

每个选择框中的选定人员最终都将写入 group_persons 表,但我希望将它们作为单独的列表发送回控制器以便首先处理,所以我希望我的参数看起来像这样:

"group"=>{ "group_persons_subgroup_a"=>"1", "group_persons_subgroup_b"=>"3", "commit"=>"保存"}

在视图中我需要做什么才能实现这一目标?

标签: ruby-on-rails

解决方案


查看select_tag。它允许您为您的选择指定不同的名称,从而为您提交的值指定不同的名称。

它可能看起来像:

select_tag "group_persons_subgroup_a", options_from_collection_for_select(Person.all, "id", "name")

这可能并不完全正确,因此您将不得不摆弄它。

顺便说一句,你使用Person而不是User. 对于我们的计算机,我们不仅仅是我们的角色!


推荐阅读