6 votes

Rubis chacun, action différente selon l'indice, avec un schéma ?

Ok, mon titre peut prêter à confusion. Ce que je veux faire est de boucler à travers une collection de modèles, et pour les deux premiers, rendre un modèle, pour les quatre suivants rendre un modèle différent et les deux suivants rendre le même modèle que pour les premiers, et ainsi de suite.

Comme ça :

  <% ads.each do |ad| %>
    <% # if it's 1-2, 7-8, 13-14 and so on render as big' %>
      <%= render 'front/home/big_ad', ad: ad %>
    <% # if it's 3-6, 9-12, 15-18 and so on render as small' %>
      <%= render 'front/home/small_ad', ad: ad %>
    <% end %>
  <% end %>

Quel serait le moyen le plus propre d'y parvenir ?

14voto

Matzi Points 8561

Si vos groupes sont encore plus longs, alors vous pouvez utiliser in_groups_of et alterner entre elles, mais avec ces spécifications, la méthode la plus simple est la suivante :

<% ads.each_with_index do |ad, index| %>
  <% if (index % 6 < 2) %>
    <%= render 'front/home/big_ad', ad: ad %>
  <% else %>
    <%= render 'front/home/small_ad', ad: ad %>
  <% end %>
<% end %>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X