All results from Solr are paginated... By default, Sunspot requests the first 30 results from Solr. В вашем примере вы разбиваете на страницы массив первых 30 результатов, возвращаемых Solr.
Я считаю, что проще просто позвонить 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
в качестве ключевого слова аргумент для метода Каминари paginate_array
. Поэтому это должно работать, если вы хотите придерживаться метода, который вы используете выше ...
Kaminari.paginate_array(search.results, total_count: search.total).page(params[:page]).per(10)
Эй, вы отвечаете правильно. Спасибо. Оказывается, я вызывал paginate вне поискового блока :( – Brian