Rails 3 и проблема пагинации Kaminari - PullRequest
1 голос
/ 07 июня 2011

Хорошо, поэтому я решил использовать Kaminari для разбиения на страницы в проекте rails 3. Я следил за видео с RailsCasts http://railscasts.com/episodes/254-pagination-with-kaminari

Все идет хорошо до точки или запуска сервера.

Контроллеры / stories_controller.rb

def index
   @stories = Story.all
   @pages = Story.page(params[:page]).per(3)
   @stories = Story.search(params[:search]) 
end

Вид / рассказы / index.html.erb

<%= paginate @pages %>

Когда я запускаю сервер, на рассматриваемой странице индекса отображаются все истории из БД и отображается представление разбивки на страницы (1 2 Далее> Последний »). Чего мне не хватает, чтобы устроить нумерацию страниц?

Ответы [ 2 ]

4 голосов
/ 08 июня 2011

Я до сих пор не могу понять ваш код.Почему вы присваиваете Story.all @stories в 1-й строке и перезаписываете переменную в 3-й строке?

В любом случае @stories будет отображать «все истории из БД», потому что вы не вызываетеметод нумерации страниц (.per) на @stories.Ссылки нумерации страниц покажут вам количество страниц, потому что вы вызываете метод per для переменной @page и передаёте его помощнику.

Я имею в виду, что перед передачей вам нужно вызвать .per для отношенияэто к <%= paginate %> помощнику.Это довольно просто.

3 голосов
/ 07 июня 2011

Полагаю, вы хотите получить результаты поиска, верно? Попробуйте

@stories = Story.search(params[:search]).page(params[:page]).per(3)

и что-то вроде:

<% @stories.each do |story| %>
<%= render story %>
<% end %>
<%= paginate @stories %>

по вашему мнению

...