2014-02-11 17 views
1

我使用太阳黑子和Kaminari进行分页。但是,我看到的最大结果返回(即使有更多的)是30Rails太阳黑子Kaminari最大结果30

这里是我的代码:

Kaminari.paginate_array(search.results).page(params[:page]).per(10) 

请有关如何返回所有结果,并相应分页建议。

回答

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 

然后用雷的PAGINATE帮手在我的意见......

<%= paginate @search.results %> 

*你可以如果您不想加载模型实例,请使用@search.hits


或者,您可以将:total_count作为Kaminari的paginate_array方法的关键字参数传递给looks like。所以这应该工作,如果你想坚持使用上面的方法...

Kaminari.paginate_array(search.results, total_count: search.total).page(params[:page]).per(10) 
+0

嘿,你的回答是正确的。谢谢。事实证明,我在搜索块之外呼叫分页: – Brian