如何在Slim(Ruby Rails)中将列表拆分或切片为单独的块

时间:2014-07-22 08:23:55

标签: ruby-on-rails slim-lang

我试图做以下事情:

<div>
  <ul>
    <li>0</li>
    <li>1</li>
    <li>2</li>
    <li>3</li>
  </ul>
  <ul>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
  </ul>
</div>

这是我尝试过的。

div
  - @my_list.each_with_index do |element, index|
    - if element % 4 == 0                                 
      ul
    li
      Element

不幸的是,li是在div而不是ul下创建的,我如何才能获得结果?

2 个答案:

答案 0 :(得分:1)

您应该使用each_slice()

div
  - [1,2,3,4,5,6,7,8].each_slice(4) do |elems|
    ul
      - elems.each do |e|
        li = e

生成此html:

<div>
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
  </ul>
  <ul>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
  </ul>
</div>

答案 1 :(得分:0)

我会将列表分成两个列表进行打印。

例如。 @my_list.take(4)@my_list.drop(4)

然后将每个列表传递给部分,以便他们可以使用相同的标记。