2012-05-11 7 views
0

ifステートメントを使用して、アイテムが同じHTMLコンテナ内にあるか新しいアイテムを取得するかを判断したいとします。入れ子を扱う方法のために、同じ容器の中に複数のアイテムを持っているように見えません。hamlを使用してコンテナ内のアイテムをネストする

例:それはdivの閉じた後にそれらを置くしかし

%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内にネストされるため、インデックス0の項目のみが引き出されます。

これはhamlでどのように実行されますか?

+0

インデックス0と1が同じものをレンダリングする場合、最初の条件は必要ありません。これは入れ子の問題ではなく、インデックスが0のときにdivを出力するだけです。 – numbers1311407

+0

これは条件付きの悪夢です:)...あなたは何を得ようとしていますか? – fguillen

+0

暗闇の中で撮影すると、 'index == 0 '条件ブロックを' index <= 1'条件ブロックに移動しようとすることができます。 – fguillen

答えて

1

あなたはそのようなのdivのクラスにパラメータを渡すことができます。

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

そしてそれCSSの問題の代わりに、ルビー/ HAMLの1にします。

関連する問題