我在我的应用程序中使用will_paginate,并且分页链接的href类似于“ posts?page = 2”,但我希望它们为“ http://www.fu.com/posts?page=2”。我该怎么办?
答案 0 :(得分:2)
您可能想对默认的LinkRenderer进行猴子补丁,以便使用正确的选项生成网址。
在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下,但请确保已从初始化程序加载该代码。您的网址现在应该包含完整的网址。
答案 1 :(得分:0)
为您的应用程序在APP_URL = 'http://www.fu.com/'
中添加常量production.rb
类似地,您可以为localhost:3000/
添加development.rb
您可以在助手中创建方法以使其像
那样调用def full_url(url)
APP_URL + url
end