从collection_check_boxes中删除外部标签

时间:2016-06-22 18:15:41

标签: ruby-on-rails simple-form

我正在从我的关联复选框生成一个表。每行显示一个复选框和一些其他信息。

%table
= f.collection_check_boxes :task_ids, @my_collection, :id, :label do |r|
  %tr
    %td= r.label
    %td= r.check_box
    %td= r.object.due_date

但这打破了我的HTML,因为输出看起来像这样:

<table>
<span><label for="task_ids_1"> <--- I want to remove this...
  <tr>
    <td><label for="task_ids_1">My Name</label></td>
    <td><input type="checkbox" value="8" name="user[task_ids][]" id="task_ids_1" /></td>
    <td>I'm in.</td>
  </tr>
</label></span> <--- ...and this!
</table>

当然我尝试设置label: false,但此选项无效。如何摆脱外部标签?

1 个答案:

答案 0 :(得分:2)

差不多一年后,我终于明白了。有一个名为boolean_style: :inline的选项使其有效。

%table
  = f.collection_check_boxes :task_ids, @coll, :id, :label, boolean_style: :inline do |r|
    %tr
      %td= r.label
      %td= r.check_box
      %td= r.object.due_date

我在https://github.com/plataformatec/simple_form/issues/1266找到了解决方案和解释:

  

因为你希望它是内联的(因为你正在嵌套它   你需要使用boolean_style :: inline config。