Rails partials和HAML

atm*_*ell 2 ruby ruby-on-rails

我有一个ajax方法,用于渲染用户的@collection.此代码来自用户部分.现在我需要做的是为每个第三个对象在3 li标签周围包裹一个ul标签.我如何使用HAML执行此操作?我不能只将%ul标记添加到"when 1" - 因为HAML在渲染该对象时关闭标记.

-case user_counter + 1
-when 1
  %li.first
    @user.login
-when 2
  %li
    @uer.login
-when 3
  %li.last
    @user.login
Run Code Online (Sandbox Code Playgroud)

这是我正在寻找的结果:

<ul>
  <li>user1</li>
  <li>user2</li>
  <li>user3</li>
</ul>

<ul>
  <li>user4</li>
  <li>user5</li>
  <li>user6</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

等等

Chu*_*uck 5

我想你想要的each_slice.它将Enumerable拆分为指定大小的组.你可以这样做:

- @collection.each_slice(3) do |slice|
  %ul
    %li.first= slice[0].login
    %li= slice[1].login
    %li.last= slice[2].login
Run Code Online (Sandbox Code Playgroud)