如何使用haml每隔几个div插入一个块?

时间:2012-04-23 14:00:05

标签: html ruby haml

我想每三个块插入一个div.row,以便三个span一起插入以下haml片段。

但是这段代码插入<div class="row"></div>而不是包裹.span4

  - data.apps.applications.each_with_index do |app, index|
  - if index%3 == 0
    .row # This is the line I want to insert
    .span4

我怎么能用haml做这个,或者在这种情况下,erb更合适?

2 个答案:

答案 0 :(得分:8)

我认为你想要的是这样的:

-data.apps.applications.each_slice(3) do |apps|
  .row
    -apps.each do |app|
      .span4

这使用each_sliceapps是来自applications的三个项目的数组。

这需要来自applications的三个元素组,并为每个组添加一个row div,然后为每个元素添加一个span4 div,所以你得到的是这样的:

<div class="row">
  <div class="span4"></div>
  <div class="span4"></div>
  <div class="span4"></div>
</div>
<div class="row">
  <div class="span4"></div>
  <div class="span4"></div>
  <div class="span4"></div>
</div>

如果您没有三个元素的倍数,则最后一个组只有一个或两个成员。

答案 1 :(得分:2)

你的缩进是错误的

- data.apps.applications.each_with_index do |app, index|
  - if index%3 == 0
    .row # This is the line I want to insert
  .span4