Rails каждый тег вставки петли каждые 6 элементов?

У меня есть X количество объектов изображения, которые мне нужно прокрутить в представлении, и вы хотите создать новый div каждые 6 объектов или около того (для галереи).

Я посмотрел на цикл, но, похоже, изменил каждую другую запись. Кто-нибудь знает способ вставить код в представление каждые 6 раз?

Я мог бы, вероятно, сделать это с вложенными циклами, но я немного зациклен на этом.

Ответ 1

Вы можете использовать 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 -%>

Ответ 2

Это вопрос 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