开发者

Rails each loop insert tag every 6 items?

I have X number of image objects that I need to loop through in a view开发者_Go百科 and want to create a new div every 6 objects or so (for a gallery).

I have looked at cycle but it seems to change every other record. Does anyone know of a way to insert code into a view every 6 times?

I could probably do it with nested loops but I am kinda stumped on this one.


You can use Enumerable#each_slice in conjunction with #each to avoid inline calculations. each_slice breaks the array into chunks of n, in this case 6.

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


This is a Ruby question. You can meld this into whatever your view is trying to do.

@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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜