1

我想div.row每三个块插入一个,以便为下面的 haml 片段包装三个块。span

但是这段代码插入了一个<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更合适?

4

2 回答 2

8

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

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

这使用each_slice. apps是来自 的三个项目的数组applications

这从 中获取三个元素的组applications,并为每个组添加一个rowdiv,然后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>

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

于 2012-04-23T16:01:03.317 回答
2

你的缩进是错误的

- data.apps.applications.each_with_index do |app, index|
  - if index%3 == 0
    .row # This is the line I want to insert
  .span4
于 2012-04-23T15:57:10.713 回答