在我的搜索控制器中,我使用group_by
方法收集了一系列结果(艺术家/专辑)。
class SearchController < ApplicationController
def index
@grouped_results = @results.group_by { |q| q.class.name }
end
end
在我看来,@grouped_results
被枚举并根据它们所属的类(艺术家/专辑)放在div中。
<% @grouped_results.each do |class_name, results| %>
<div class="<%= class_name.downcase %>-results">
...
</div>
<% end %>
我想做的是从每组中获取前10个结果。因此,它将返回最多10位艺术家,并返回最多10张专辑。考虑到这一点,take
方法或使用数值范围(0..10
)是不够的,因为我实际上是尝试使用2个数组。让这个工作的最佳方法是什么?
答案 0 :(得分:0)
您只需在循环中获得10个第一个结果:
<% @grouped_results.each do |class_name, results| %>
<% few_first_results = results[0..9] %>
# etc.
<% few_first_results.each do |result| %>
# etc.
<% end %>
<% end %>