我在控制器中有这样的东西:
@puzzleGames = Game.where("category = 'puzzle'").limit(8)
但在视图中,我将它们显示在 2 个单独的区域中,其中 4 个在一个区域中,4 个在另一个区域中。
而不是做这样的事情:
<% @puzzleGames.each do |puzzleGame| %>
循环遍历所有元素,是否可以循环到有限数(0-3,4-7)?
谢谢
我在控制器中有这样的东西:
@puzzleGames = Game.where("category = 'puzzle'").limit(8)
但在视图中,我将它们显示在 2 个单独的区域中,其中 4 个在一个区域中,4 个在另一个区域中。
而不是做这样的事情:
<% @puzzleGames.each do |puzzleGame| %>
循环遍历所有元素,是否可以循环到有限数(0-3,4-7)?
谢谢
你也可以试试这个
@gameSlices = @puzzleGames.each_slice(4)
然后使用@gameSlices.first
和@gameSlices.last
编辑:结果证明这@gameSlices.next
在这种情况下非常有用。它将一个一个地返回每个切片。
或者您可以使用类似的块
@puzzleGames.each_slice(4) do |slice|
# Do your stuffs with slice
end
尝试
@puzzleGames[0...4]
并@puzzleGames[4...8]
@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 %>