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