in_groups_of,其中包含Rails中的fields_for

时间:2016-11-14 11:03:16

标签: ruby-on-rails

我在一个表单中有一些字段,我希望按系列分组3.现在它看起来像这样

<!-- Variant boxes -->
<div class="row form-group">
  <%= f.fields_for :options do |field_option| %>
    <div class="col-md-4">
      <%= render partial: "shopkeeper/products/variants/index/form/variant_box", :locals => {:form => field_option} %>
    </div>
  <% end %>
</div>

出于审美原因,每3 field_option我希望能够添加<div class='row'>,这样我就不会破坏我的网格系统。

我知道我只是想显示数据时使用的方法in_groups_of(3, false),但是我们处于form的特殊上下文中,因此我没有解决方案......

实现这一目标的最简单方法是什么?

1 个答案:

答案 0 :(得分:0)

因为fields_for不会产生索引,所以最简单的方法可能是保留自己的索引:

<% i = 0 %>
<div class='row'>
<%= f.fields_for :options do |field_option| %>
  <% if i % 3 == 0 && i > 0 %>
    </div><div class='row'>
  <% end %>
  <% i += 1 %>
  <div class="col-md-4">
    <%= render partial: "shopkeeper/products/variants/index/form/variant_box", :locals => {:form => field_option} %>
  </div>
<% end %>
</div>