2016-03-20 3 views
-2

Je vais avoir un problème HAML écrire un if else ...Haml Si le problème de la déclaration

J'ai ce code:

- experiences.each_index do |index| 
    - if index % 2 == 0 ? 
    .group 
     .left 
    - else 
    .right 
    %p= experiences[index].company 

Et je voudrais produire ce genre de html:

<div class='group'> 
    <div class='left'></div> 
    <div class='right'></div> 
</div> 

Plusieurs fois en fonction de la longueur de ma collection.

Une idée? Merci

EDIT> Une solution serait de le faire:

- experiences.each_index do |index| 
    - if index % 2 == 0 ? 
    .group 
     .left 
     experiences[index]... 
     .right 
     experiences[index+1]... 

Mais est-il pas de meilleure solution?

Répondre

3

Vous pouvez utiliser in_groups_of:

- experiences.in_groups_of(2) do |left, right| 
    .group 
    .left 
     %p= left.company 
    .right 
     %p= right.company if right 
+0

Merci, c'est exactement ce que je cherchais! –

+1

En travaillant avec Middleman, je n'ai pas accès à in_groups_of. Cependant, each_slice de ruby ​​fait le même travail :) –