我正在使用SimpleForms并为表中的每条记录生成复选框。将显示复选框的标签,但复选框全部在所有标签右侧生成。有没有人看过这种行为并知道如何解决它?
以下是截图。
这是我用来生成这些复选框的代码。
<%= f.association :counties, :as => :check_boxes, :collection => County.all.sort, :selected => @job.counties, :inline_label => true, :label => false %>
任何建议都表示赞赏!
答案 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 = name
和check_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_boxes
和association
都会占用一个块,以便您可以将它们格式化为适合您的方案。我认为主要问题是您正在使用表结构,并且它在一个<td>
元素中呈现所有复选框。 inline_label
似乎是一个静音选项,因为你还没有渲染标签。
答案 1 :(得分:1)
尝试:
<%= f.input :parties, {:collection => County.all.sort, :as => :check_boxes, :checked => @job.counties, :inline_label => true, :label => false} %>