我有一个 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
这是我正在寻找的结果:
<ul>
<li>user1</li>
<li>user2</li>
<li>user3</li>
</ul>
<ul>
<li>user4</li>
<li>user5</li>
<li>user6</li>
</ul>
等等
最佳答案
我想你想要each_slice
。它将 Enumerable 拆分为指定大小的组。你可以这样做:
- @collection.each_slice(3) do |slice|
%ul
%li.first= slice[0].login
%li= slice[1].login
%li.last= slice[2].login
关于ruby-on-rails - Rails 部分和 HAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1168760/