如何在SimpleForms RoR中修复复选框及其标签

时间:2014-03-18 19:52:00

标签: ruby-on-rails ruby simple-form

我正在使用SimpleForms并为表中的每条记录生成复选框。将显示复选框的标签,但复选框全部在所有标签右侧生成。有没有人看过这种行为并知道如何解决它?

以下是截图。enter image description here

这是我用来生成这些复选框的代码。

<%= f.association :counties, :as => :check_boxes, :collection => County.all.sort, :selected => @job.counties, :inline_label => true, :label => false %>

任何建议都表示赞赏!

2 个答案:

答案 0 :(得分:1)

未经测试但这应该有效

<%= f.collection_check_boxes :county_ids,County.all.sort,:id,:name,:selected => @job.counties do |county| %>
     <td><%= county.text %></td>
     <td><%= county.check_box %></td>
<% end %>

这会在County个对象上调用:id和:name,并将其作为text = namecheck_box = id返回到该块。

county_ids只是基于simple_form示例的结构猜测。

或者可能

<%= f.association :counties,:selected => @job.counties do |county_form| %>
   <% County.all.sort.each do |county| %>
      <td><%= county.name %></td>
      <td><%= county_form.input :county, as: :boolean, label: false %></td>
   <% end %>
<% end %>

collection_check_boxesassociation都会占用一个块,以便您可以将它们格式化为适合您的方案。我认为主要问题是您正在使用表结构,并且它在一个<td>元素中呈现所有复选框。 inline_label似乎是一个静音选项,因为你还没有渲染标签。

答案 1 :(得分:1)

尝试:

<%= f.input :parties, {:collection => County.all.sort, :as => :check_boxes, :checked => @job.counties, :inline_label => true, :label => false} %>