Rails多选表单

时间:2016-10-26 15:23:55

标签: jquery ruby-on-rails ruby

我正在尝试创建一个多选表单,用户可以将左侧选择框中的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 %>

看起来像:

enter image description here

但是,我试图得到类似的东西:

enter image description here

这样做最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您查看the docs for select,您会看到它需要两组选项:options - 用于Rails选项,html_options用于包含在生成的HTML上的其他属性<select>代码。

include_blank是一个Rails选项,而multiple是HTML属性,所以这些需要在单独的哈希中传递:

此外,在整理代码时,如果您在collect块结束后发布了丢失逗号的问题,那么请务必确保在重试此代码时包含逗号。

这就是为什么可用主机显示为单个项目下拉列表而不是列表的原因。实现“可用”和“已分配”列表之间的移动超出了单个问题的范围。