我在控制器中有这样的东西:
@puzzleGames = Game.where("category = 'puzzle'").limit(8)
但在视图中我将它们显示在2个单独的区域中,4合1和4个。
而不是做这样的事情:
<% @puzzleGames.each do |puzzleGame| %>
循环遍历所有元素,是否可以循环到有限数字(0-3,4-7)?
由于
答案 0 :(得分:3)
您也可以尝试使用此
@gameSlices = @puzzleGames.each_slice(4)
然后使用@gameSlices.first
和@gameSlices.last
编辑:事实证明@gameSlices.next
在这种情况下非常有用。它将逐个返回每个切片。
或者您可以使用像
这样的块@puzzleGames.each_slice(4) do |slice|
# Do your stuffs with slice
end
答案 1 :(得分:0)
尝试
@puzzleGames[0...4]
和@puzzleGames[4...8]
答案 2 :(得分:0)
@puzzleGames = Game.where("category = 'puzzle'").limit(8)
@firstFourPuzzleGames = arr.each_slice(4).map(&:first)
@lastFourPuzzleGames = arr.each_slice(4).map(&:last)
和
<% @firstFourPuzzleGames.each do |puzzleGame| %>
<% end %>
和
<% @lastFourPuzzleGames.each do |puzzleGame| %>
<% end %>