Rails will_paginate 如何生成完整的网址?

Rails will_paginate how to generate full urls?

我在我的应用程序中使用 will_paginate,分页链接有像 'posts?page=2' 这样的 href,但我希望它们是“http://www.fu.com/posts?page=2”。我该怎么做?

您可能想要对默认的 LinkRenderer 进行猴子修补,以便使用正确的选项生成 urls。

url method of WillPaginate's Rails Helpers你有

    @base_url_params ||= begin
      url_params = merge_get_params(default_url_params)
      url_params[:only_path] = true
      merge_optional_params(url_params)
    end

所以 :only_path 选项被强制为 true。但是你可以让merge_optional_params,之后调用,为你做这个技巧:

module WillPaginateForceFullUrl
  def merge_optional_params(url_params)
    url_params = super
    url_params[:only_path] = false
    url_params
  end
end

WillPaginate::ActionView::LinkRenderer.prepend(WillPaginateForceFullUrl)

将此代码粘贴在初始化程序中或 lib 下,但确保它是从初始化程序加载的。您的网址现在应该包含完整的 url。