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。
我在我的应用程序中使用 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。