使用Ruby批量循环模型

Gar*_*ett 2 ruby activerecord loops ruby-on-rails

我知道find_in_batchesActiveRecord 的方法,但这不允许我设置我的:order:limit.

我正在尝试遍历我的数据,并且每6个项目我想将它们包装在<div>中.

我试图整个......

<%
i = 0
@media.each do |media|
%>
<% if i%6 %><div class="section"><% end %>
    [...]
<% if i%6 %></div><% end %>
<%
i += 1
end
%>
Run Code Online (Sandbox Code Playgroud)

但我觉得这种"Rails"方式效率不高.我可以将我的阵列分成4个不同的6个阵列吗?我正试图找到最好的方法,并希望你们可以帮助.

最后我需要它出来这样的东西:

<!--
  I have 24 items in my array, and I need to wrap every 6 inside a div.
-->
<div class="section">
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
</div>

<div class="section">
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
</div>

<div class="section">
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
</div>

<div class="section">
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
   <div class="item"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Ben*_*tis 18

你想要in_groups_of:

<% @items.in_groups_of(6) do |group| %>
    <div class="section">
        <% group.each do |item| %>
            <div class="item"></div>
        <% end %>
    </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)