У меня есть X количества объектов изображения, которые я должен циклично выполнить через в представлении и хотеть создать новое отделение каждые 6 объектов или так (для галереи).
Я посмотрел на цикл, но это, кажется, изменяет любую запись. Кто-либо знает о способе ввести код в представление каждые 6 раз?
Я мог, вероятно, сделать это с вложенными циклами, но я отчасти озадачен на этом.
Вы можете использовать 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 -%>
Это вопрос 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