【问题标题】:How to enable fancy-routes for Pagy Gem in Rails 6 app如何在 Rails 6 应用程序中为 Pagy Gem 启用奇特路由
【发布时间】:2021-05-04 15:52:05
【问题描述】:

我正在尝试用 /page/2 替换 Rails 6 应用程序中所有分页页面的 ?page=,以便能够使用 Page根据this guide缓存。

我正在使用 Pagy gem 进行分页和according to their documentation,我应该能够添加一个辅助方法来覆盖以添加对花哨的路线的支持。

我已将此块添加到我的 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"

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-6 pagy


    【解决方案1】:

    我认为他们在教程中混淆了参数。试试

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

    【讨论】:

    • 当前版本的文档是正确的,但它缺少关于以前版本中参数倒序的注释。添加。谢谢。
    【解决方案2】:

    您在application_helper.rb 中加入了include Pagy::Frontend 吗?

    # 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
    

    【讨论】:

      【解决方案3】:

      __pagy_page__ 是在前端和许多扩展中使用的占位符,因此如果没有完整的回溯,您报告的错误将毫无用处。

      除了在此处发布回溯,您还可以在特定的Pagy Support 中发布您的问题以获得更快的答案。

      【讨论】:

        猜你喜欢
        • 2019-12-08
        • 2023-01-19
        • 2020-03-31
        • 1970-01-01
        • 2012-07-15
        • 2023-04-02
        • 2015-09-04
        • 1970-01-01
        • 2012-01-22
        相关资源
        最近更新 更多