在一组数组中创建范围
Creating a range across a group of arrays
在我的搜索控制器中,我使用 group_by
方法收集了结果列表 (artists/albums)。
class SearchController < ApplicationController
def index
@grouped_results = @results.group_by { |q| q.class.name }
end
end
在我看来,@grouped_results
根据它们所属的 class (artists/albums) 被枚举并放置在 div 中。
<% @grouped_results.each do |class_name, results| %>
<div class="<%= class_name.downcase %>-results">
...
</div>
<% end %>
我想做的是从每组中获取前 10 个结果。所以它会 return 最多 10 位艺术家和 return 最多 10 张专辑。考虑到这一点,take
方法或使用数字范围 (0..10
) 是不够的,因为我实际上是在尝试使用 2 个数组来执行此操作。让它发挥作用的最佳方法是什么?
您可以简单地在循环中获得前 10 个结果:
<% @grouped_results.each do |class_name, results| %>
<% few_first_results = results[0..9] %>
# etc.
<% few_first_results.each do |result| %>
# etc.
<% end %>
<% end %>
在我的搜索控制器中,我使用 group_by
方法收集了结果列表 (artists/albums)。
class SearchController < ApplicationController
def index
@grouped_results = @results.group_by { |q| q.class.name }
end
end
在我看来,@grouped_results
根据它们所属的 class (artists/albums) 被枚举并放置在 div 中。
<% @grouped_results.each do |class_name, results| %>
<div class="<%= class_name.downcase %>-results">
...
</div>
<% end %>
我想做的是从每组中获取前 10 个结果。所以它会 return 最多 10 位艺术家和 return 最多 10 张专辑。考虑到这一点,take
方法或使用数字范围 (0..10
) 是不够的,因为我实际上是在尝试使用 2 个数组来执行此操作。让它发挥作用的最佳方法是什么?
您可以简单地在循环中获得前 10 个结果:
<% @grouped_results.each do |class_name, results| %>
<% few_first_results = results[0..9] %>
# etc.
<% few_first_results.each do |result| %>
# etc.
<% end %>
<% end %>