11

我想为我的 Rails 2.3.10 应用程序中的每个URL 添加一个参数。我玩过,default_url_options但我希望参数在 URL 中可见。就像是:

http://<server>/posts?token=XYZ

我正在建立一个附属跟踪系统,我希望人们分享链接,并能够跟踪谁的链接稍后在有人点击它时被使用(给分享链接的人积分)。任何提示如何在应用程序中使用的每个URL 中添加可见参数?

谢谢!

4

3 回答 3

5

改写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}}
于 2010-11-05T13:09:04.720 回答
2

在 ApplicationController(或相关控制器)中定义 default_url_options

def default_url_options
  {subdomain: 'www'}
end
于 2013-09-10T21:14:35.323 回答
0

我将使用用户登录,或生成一个令牌,将其作为字段存储在用户表中,然后将其添加到 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)
于 2010-11-05T12:57:25.333 回答