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)
等等
我想你想要的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)