2012-05-11 4 views
0

Я хочу использовать оператор if, чтобы определить, попадают ли элементы в один и тот же контейнер html или получают новый. Кажется, я не могу получить более одного элемента внутри одного контейнера, используя haml из-за того, как он обрабатывает вложенность.Вложение элементов в контейнер с помощью haml

Пример:

%div.line.boards.main_boards 
    - @boards.each_with_index do |board, index| 
    - @board = board 
    -if index == 0 
     %div.unit.size1of5 
    -if index <= 1 
     = render :partial => "board_projects" 
    -if index == 2 
     %div.unit.size4of5 
     = render :partial => "board_projects" 

В этом примере элемент% div.unit.size1of5 должен обернуть вокруг обоих пунктов индекса 0 & 1. Однако это помещает их после того, как DIV закрывается. Если я вставляю код, в котором частичный отображается так, что он вложен внутри div, он только втягивает элемент index 0.

Как это делается в haml?

+0

Если индекс 0 и 1 визуализируют одни и те же вещи, вам не нужны первые условные, верно? Это не проблема вложенности, но вы только выводите div, когда индекс равен 0. – numbers1311407

+0

Это кошмар условностей:) ... Что вы пытаетесь получить ?. – fguillen

+0

Съемка в темноте вы можете попытаться переместить блок состояния 'index == 0' в блок состояния fguillen

ответ

1

Вы можете передать параметры в класс в DIV так:

.unit{:class => "size#{index}"} 
    = render :partial => "board_projects" 

А затем сделать это проблема CSS вместо рубин/Haml один.

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