実現したいこと
Rails + HAMLでこんな構造のタグを作りたい (特定の間隔でネストさせる)
<ul>
<li>山田</li>
<li>田中</li>
</ul>
<ul>
<li>鈴木</li>
<li>佐藤</li>
</ul>
<ul>
<li>高橋</li>
<li>山本</li>
</ul>
こうやってもダメ
直感的にこんなコードを書いてみましたが・・・・
- @users.each_with_index do |user, i|
- if i % 2 == 0
%ul
%li= user.name
あれっ?ネストしなかった。。。orz
<ul></ul>
<li>山田</li>
<li>田中</li>
<ul></ul>
<li>鈴木</li>
<li>佐藤</li>
<ul></ul>
<li>高橋</li>
<li>山本</li>
each_sliceメソッドを使えばOK
こんなときはEnumerableモジュールのeach_sliceメソッドを使いましょう。
- @users.each_slice(2) do |users|
%ul
- users.each do |user|
%li= user.name
こうすれば特定の間隔でネストするタグ構造を作れます。
めでたしめでたし。
<ul>
<li>山田</li>
<li>田中</li>
</ul>
<ul>
<li>鈴木</li>
<li>佐藤</li>
</ul>
<ul>
<li>高橋</li>
<li>山本</li>
</ul>