我正在尝试创建一个多选表单,用户可以将左侧选择框中的IP地址移动到右侧(我不确定该对象的名称是什么)。
我有我的基本表单代码,但它显示的是下拉列表(我已经删除了不相关的代码):
<%= form_for @network_host_groups do |f| %>
<%= f.select :network_hosts, @network_hosts.collect { |n| [ n.ip_address, n.id ] } multiple: true, include_blank: false %>
<%= f.submit "Add", class: "btn btn-success" %>
<% end %>
看起来像:
但是,我试图得到类似的东西:
这样做最好的方法是什么?
答案 0 :(得分:0)
如果您查看the docs for select,您会看到它需要两组选项:options
- 用于Rails选项,html_options
用于包含在生成的HTML上的其他属性<select>
代码。
include_blank
是一个Rails选项,而multiple
是HTML属性,所以这些需要在单独的哈希中传递:
此外,在整理代码时,如果您在collect
块结束后发布了丢失逗号的问题,那么请务必确保在重试此代码时包含逗号。
这就是为什么可用主机显示为单个项目下拉列表而不是列表的原因。实现“可用”和“已分配”列表之间的移动超出了单个问题的范围。