每6个Rails每个循环插入标记?

Dus*_* M. 32 ruby loops ruby-on-rails

我有X个图像对象需要在视图中循环,并且想要每6个对象创建一个新的div(对于一个库).

我看过周期,但它似乎改变了所有其他记录.有没有人知道每6次将代码插入视图的方法?

我可以用嵌套循环来做这件事,但我有点难过这个.

tho*_*ncp 103

您可以Enumerable#each_slice结合使用#each以避免内联计算. each_slice将数组分成n个块,在本例中为6.

<% @images.each_slice(6) do |slice| -%>
  <div class="gallery">
    <% slice.each do |image| -%>
      <%= image_tag(image.url, :alt => image.alt) %>
    <% end -%>
  </div>
<% end -%>
Run Code Online (Sandbox Code Playgroud)


jdl*_*jdl 14

这是一个Ruby问题.你可以将它融入到你想要做的任何事情中.

@list.each_with_index do |item, idx|
  if((idx + 1) % 6 == 0)
    # Poop out the div
  end
  # Do whatever needs to be done on each iteration here.
end
Run Code Online (Sandbox Code Playgroud)