2014-02-11 2 views
1

Я использую Sunspot и Kaminari для разбивки на страницы. Тем не менее, я вижу, что максимальные результаты возвращаются (хотя больше) 30.Rails Sunspot Kaminari Max results 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. В вашем примере вы разбиваете на страницы массив первых 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) 
+0

Эй, вы отвечаете правильно. Спасибо. Оказывается, я вызывал paginate вне поискового блока :( – Brian

 Смежные вопросы

  • Нет связанных вопросов^_^