Как включить модные маршруты для приложения Pagy Gem в Rails 6

Я пытаюсь заменить ? Page = на / page / 2 для всех страниц с разбивкой на страницы в моем приложении Rails 6, чтобы я мог использовать кэширование страниц в соответствии с этим руководством .

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

Я добавил этот блок в свой application_helper.rb

      def pagy_url_for(pagy, page)
  params = request.query_parameters.merge(pagy.vars[:page_param] => page )
  url_for(params)
end

Однако после этого я получаю эту ошибку:

       "undefined method `vars' for "__pagy_page__":String"

Есть идеи, как это решить?

3 ответа

Я думаю, они перепутали параметры в своем руководстве. Пытаться

      def pagy_url_for(page, pagy)
  params = request.query_parameters.merge(pagy.vars[:page_param] => page )
  url_for(params)
end

Ты include Pagy::Frontend в application_helper.rb?

      # application_helper.rb
class ApplicationHelper
  include Pagy::Frontend

  def pagy_url_for(pagy, page)
    params = request.query_parameters.merge(pagy.vars[:page_param] => page )
    url_for(params)
  end
end

В - это заполнитель, используемый во внешнем интерфейсе и в ряде расширений, поэтому ошибка, о которой вы сообщаете, бесполезна без полной трассировки.

Помимо публикации трассировки здесь, вы также можете опубликовать свой вопрос в специальной службе поддержки Pagy, чтобы получить более быстрый ответ.

Другие вопросы по тегам