ruby on rails - true - Rieles cada etiqueta de inserción de bucle cada 6 elementos?
times ruby (2)
Tengo un número X de objetos de imagen que necesito recorrer en una vista y quiero crear un nuevo div cada 6 objetos más o menos (para una galería).
Miré el ciclo pero parece cambiar cualquier otro registro. ¿Alguien sabe de una forma de insertar código en una vista cada 6 veces?
Probablemente podría hacerlo con bucles anidados, pero estoy un poco perplejo en este caso.
Esta es una pregunta Ruby. Puedes fusionar esto en lo que sea que tu vista esté tratando de hacer.
@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
Puede usar Enumerable#each_slice
junto con #each
para evitar cálculos en línea. each_slice
divide la matriz en fragmentos de n, en este caso 6.
<% @images.each_slice(6) do |slice| -%>
<div class="gallery">
<% slice.each do |image| -%>
<%= image_tag(image.url, :alt => image.alt) %>
<% end -%>
</div>
<% end -%>