我正在使用太阳黑子和Kaminari进行分页。但是,我发现返回的最大结果(即使有更多)是30。
这是我的代码:
Kaminari.paginate_array(search.results).page(params[:page]).per(10)
请告知如何相应地返回所有结果和分页。
答案 0 :(得分:1)
All results from Solr are paginated... By default, Sunspot requests the first 30 results from Solr。在您的示例中,您将对Solr返回的前30个结果的数组进行分页。
我发现在控制器的搜索块中调用paginate
最简单...
@search = Sunspot.search(BlogPost) do
# filters...
paginate(page: params[:page], per_page: 10)
end
然后在我的观点中使用Kaminari的分页助手......
<%= paginate @search.results %>
*如果您不想加载模型实例,可以使用@search.hits
或者,looks like您可以将:total_count
作为关键字参数传递给Kaminari的paginate_array
方法。所以如果你想坚持上面使用的方法,这应该有用......
Kaminari.paginate_array(search.results, total_count: search.total).page(params[:page]).per(10)