Ruby on rails 查看对象时的偏移?
我在控制器中有类似的东西:Ruby on rails 查看对象时的偏移?,ruby-on-rails,Ruby On Rails,我在控制器中有类似的东西: @puzzleGames = Game.where("category = 'puzzle'").limit(8) 但在视图中,我将它们显示在两个单独的区域中,一个区域显示4个,另一个区域显示4个 而不是像这样做: <% @puzzleGames.each do |puzzleGame| %> 要在所有元素之间循环,是否可以在有限数(0-3,4-7)之间循环 谢谢试试看 @puzzleGames[0…4]和@puzzleGames[4…8]您也可以
@puzzleGames = Game.where("category = 'puzzle'").limit(8)
但在视图中,我将它们显示在两个单独的区域中,一个区域显示4个,另一个区域显示4个
而不是像这样做:
<% @puzzleGames.each do |puzzleGame| %>
要在所有元素之间循环,是否可以在有限数(0-3,4-7)之间循环
谢谢试试看
@puzzleGames[0…4]
和@puzzleGames[4…8]
您也可以试试这个
@gameSlices = @puzzleGames.each_slice(4)
然后使用@gamesicles.first
和@gamesicles.last
EDIT:刚刚发现@gamestices.next
在这种情况下非常有用。它将逐个返回每个切片
或者你可以用一个类似的方块
@puzzleGames.each_slice(4) do |slice|
# Do your stuffs with slice
end
和
<% @firstFourPuzzleGames.each do |puzzleGame| %>
<% end %>
及
@puzzleGames.每个_slice(4)do | slice |将从@puzzleGames中获得0-3片,还是创建两个子集(大小为4)?它将创建两个片,如[0..3]
和[4..7]
,并将触发块两次。这意味着在第一次迭代中,切片将包含上半部分,在下一次迭代中,它将包含下半部分。您可以在那里看到迭代的输出。
<% @firstFourPuzzleGames.each do |puzzleGame| %>
<% end %>
<% @lastFourPuzzleGames.each do |puzzleGame| %>
<% end %>