如何迭代多个数组并在每第n次迭代后添加异常?

时间:2014-02-26 19:25:15

标签: ruby-on-rails ruby arrays loops

这应该相当简单,我知道如何在迭代中增加计数器以及如何嵌套循环 - 但我想知道是否有更优雅的解决方案?

如何计算迭代运行的频率,并在每次运行X次时注入其他代码?

我尝试使用each_slice,但这是查看数组本身的内容而不是数组的数量。

这是我的示例代码:

<% @organization.users.each do |user| %>
  <div class="row">
    <div class="col-xs-6 col-md-3">
    <%= user.profile.first_name %> <%= user.profile.last_name %>
    <%= link_to 'Show', organization_user_path(@organization, user.id) %>
    <%= link_to 'Edit', '#' %>
    </div>
  </div>
<% end %>

理想情况下,我会循环4次,第4次后会添加新行

1 个答案:

答案 0 :(得分:2)

您可以使用each_with_index并使用index来了解循环运行的次数

<% @organization.users.each_with_index do |user, i| %>
  <div class="row">
    <div class="col-xs-6 col-md-3">
    <%= user.profile.first_name %> <%= user.profile.last_name %>
    <%= link_to 'Show', organization_user_path(@organization, user.id) %>
    <%= link_to 'Edit', '#' %>
    </div>
  </div>
  <%if (i+1)%4 == 0 %>
  <% end %>
<% end %>