ruby-on-rails - 表格上相同型号的两个选择框
问题描述
所以我有一个组模型的表格
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"=>"保存"}
在视图中我需要做什么才能实现这一目标?
解决方案
查看select_tag。它允许您为您的选择指定不同的名称,从而为您提交的值指定不同的名称。
它可能看起来像:
select_tag "group_persons_subgroup_a", options_from_collection_for_select(Person.all, "id", "name")
这可能并不完全正确,因此您将不得不摆弄它。
顺便说一句,你使用Person
而不是User
. 对于我们的计算机,我们不仅仅是我们的角色!
推荐阅读
- python - 为什么我在使用 pipenv 安装 scrapy 时会出现此错误?
- javascript - 在 React 中过滤特定的表行
- mongodb - Mongoose 使用 Express 填充,不在生产环境中工作(Heroku)
- java - 有没有更好的方法可以在不使用反射的情况下从对象中克隆值?
- azure - Azcopy 在 Linux Openwrt 上失败(错误的函数名称)
- git - 如何从 VPN 中排除 GIT
- java - 我想通过使用单元测试帮助找到我的 java 程序中的所有缺陷
- c++ - 初始化两个二维数组,并用 0 填充其中一个数组的第一列和第一行
- c++ - 编译器不生成移动构造函数
- windows - 使用别名运行循环