Временно отключить пагинацию Kaminari в Шпрее - PullRequest
2 голосов
/ 07 февраля 2012

Я делаю сайт Spree, на котором есть ссылки для изменения количества товаров на странице, включая ссылку для всех.Ссылки для числа просты, потому что я могу просто передать параметр :per_page через строку запроса и вспомогательные методы.Однако я не могу понять, что мне нужно передать, чтобы сказать Каминари не разбивать на страницы или временно отключить Каминари.

Я счастлив, что нашел решение в Шпрее или в Каминари.Я бы предпочел метод, отличный от :per_page = 1000 или другого такого же большого числа.

  • Шпрее 0,70,3
  • Каминари 0,13,0

Ответы [ 3 ]

1 голос
/ 01 августа 2016

Попробуйте обработать неопределенный метод 'current_page'

=paginate @object if @object  && @object.try(:total_pages)
1 голос
/ 06 июня 2012

Не могли бы вы передать параметр строки запроса и затем отфильтровать его внутри действия вашего контроллера? Например:

def show
  @products = unless params[:show_all]
    Product.page(params[:page]).per(params[:per_page])
  else
    Product.all
  end
end

Я знаю, что это не дает вам решения ни в Шпрее, ни в Каминари, но может помочь обойти проблему Хотелось бы узнать, есть ли другой способ, встроенный в библиотеку.

0 голосов
/ 15 сентября 2014

Вот как я это делал, так как мне нужны вспомогательные методы, которые kaminari добавляет в список записей:

params[:per] = Product.count if params[:per] == 'all'
Product.page(params[:page]).per(params[:per])

Это позволит избежать ошибки undefined method 'current_page' for #<Array:0x007fc6157c16a8>. (По сути, предложение Йога в комментариях к другому ответу.)

...