Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 查看对象时的偏移?_Ruby On Rails - Fatal编程技术网

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 %>