Rails - 使关联复选框显示在下拉列表中而不是数组中

时间:2017-08-07 15:20:12

标签: ruby-on-rails arrays associations simple-form dropdown

我正在使用simple_form gem来渲染复选框。这是我的代码:

<tr>
  <th>Authors</th>
    <td><%= f.association :authors, as: :check_boxes, label: false %></td>
</tr>

问题是我的收藏集出现在这样的数组中: terrible for UX!!

如何让这个复选框数组成为下拉格式?

2 个答案:

答案 0 :(得分:1)

找到解决方案!我发现了this blog post并使用了我在item_wrapper_tag:代码中使用的f.association助手。这让我可以在一系列复选框中加入div。然后我给了它一个类,所以我可以用CSS用inline-block来设置这个div的样式。

<tr>
  <th>Authors</th>
    <td><%= f.association :authors, as: :check_boxes, item_wrapper_tag: :div, item_wrapper_class: "inline_block", label: false %></td>
</tr>

产生了这个结果。内容现在是垂直列表而不是数组。

enter image description here

我需要使用CSS来更多地将它包含在一个可滚动的框中,但整体而言这个解决方案对我有用。

答案 1 :(得分:0)

您是否尝试过collection_select

看起来像这样:

<%= collection_select(:author, :name, Author.all, :id, :name_with_initial, prompt: true) %>

希望它有所帮助, 干杯