Rails collection_check_boxes - 用<li>包装每个复选框

时间:2015-08-14 00:18:49

标签: ruby-on-rails

Rails全新。如何将<li>包装器添加到由以下代码生成的每个复选框/标签元素中?

<%= f.collection_check_boxes :publish_to, [['YouTube'], ['Hulu'], ['Roku'], ['Owned Website'], ['Other']], :first, :first %>

最终输出的HTML看起来像:

<li class="checkbox-wrap">
  <label></label>
  <input type="checkbox"/>
</li>

提前致谢!

2 个答案:

答案 0 :(得分:2)

这是可能的。 collection_check_boxes允许您这样做:

<ul>
<%= f.collection_check_boxes :publish_to, [['YouTube'], ['Hulu'], ['Roku'], ['Owned Website'], ['Other']], :first, :first do |b| %>
  <li>
    <%= b.label %>
    <%= b.check_box %>
  </li>
<% end %>
</ul>

也适用于Rails 5.

参考:https://apidock.com/rails/v4.2.1/ActionView/Helpers/FormOptionsHelper/collection_check_boxes

答案 1 :(得分:1)

根据collection_check_boxes,以下应该做(但我自己从未尝试过):

<%= f.collection_check_boxes :publish_to, [['YouTube'], ['Hulu'], ['Roku'], ['Owned Website'], ['Other']], :first, :first do |b| %>
   <%= content_tag :li, "#{b.label { b.check_box } }", class: "checkbox-wrap" %>
<% end %>

或类似的东西。