2013-12-01 2 views
0

У меня проблемы с HAML и Foundation. Я хочу создать список людей в стиле google plus. Что я пробовал:HAML DRY, если в петле

- @people.each_with_index do |person, index| 
    - if index.even? 
    .row 
     .panel.medium-6.small-12.columns 
     %h3= person.full_name 
     %h5 more metadata 
    - else 
    .panel.medium-6.small-12.columns 
     %h3= person.full_name 
     %h5 more metadata 

Кроме того, это не работает, потому что теги находятся на неправильных уровнях, это также не совсем DRY. Любая идея о том, как правильно это сделать, возможно, даже более суровым способом?

+0

Как следует разметка отличаются между строк? Помимо '.row', они кажутся точно такими же. Что вы подразумеваете под «тегами на неправильных уровнях»? –

+0

Я хочу, чтобы каждая из двух панелей была сгруппирована в ряд для отклика. Когда я делаю это так, как я описал, я генерирую код, где каждая вторая панель окружена элементом строки. – brancz

ответ

2

Основываясь на ваш комментарий, что я хотел бы сделать, это использовать enumerable#each_slice спариваться результаты:

- @people.each_slice(2).each do |pair| 
    .row 
     - pair.each do |person| 
     .panel.medium-6.small-12.columns 
      %h3= person.full_name 
      %h5 more metadata 
+0

@apneadiving не могли бы вы разобраться? –

+0

@apneadiving, пожалуйста, прочитайте его комментарии, как я упомянул в своем ответе. «Я хочу, чтобы каждая из двух панелей группировалась в ряд для реагирования». Мой ответ правильный. BTW - любовь gmaps4rails! :) –

+0

Мой плохой! Тогда я просто скажу, что 'to_a' не нужно :) +1 – apneadiving

Смежные вопросы