我想为我的 Rails 2.3.10 应用程序中的每个URL 添加一个参数。我玩过,default_url_options
但我希望参数在 URL 中可见。就像是:
http://<server>/posts?token=XYZ
我正在建立一个附属跟踪系统,我希望人们分享链接,并能够跟踪谁的链接稍后在有人点击它时被使用(给分享链接的人积分)。任何提示如何在应用程序中使用的每个URL 中添加可见参数?
谢谢!
我想为我的 Rails 2.3.10 应用程序中的每个URL 添加一个参数。我玩过,default_url_options
但我希望参数在 URL 中可见。就像是:
http://<server>/posts?token=XYZ
我正在建立一个附属跟踪系统,我希望人们分享链接,并能够跟踪谁的链接稍后在有人点击它时被使用(给分享链接的人积分)。任何提示如何在应用程序中使用的每个URL 中添加可见参数?
谢谢!
改写url_for
module ActionView::Helpers::UrlHelper
def url_for options
options.merge! {:token => generate_token}
super
end
end
或者只是将其添加到您的application.rb
文件中
config.default_url_options += {:token => proc{generate_token}}
在 ApplicationController(或相关控制器)中定义 default_url_options
def default_url_options
{subdomain: 'www'}
end
我将使用用户登录,或生成一个令牌,将其作为字段存储在用户表中,然后将其添加到 url,如下所示:
post_path(@post, :token => user.token)
如果您希望令牌对帖子而言是唯一的,那么同样包含一个帖子令牌:
#post.rb
def generate_token user
"#{self.token}-#{user.token}"
#view
post_path(@post, :token => post.generate_token)