Rails 向应用程序中的每个 URL 添加参数

发布于 2024-09-30 17:58:42 字数 315 浏览 7 评论 0原文

我想向 Rails 2.3.10 应用程序中的每个 URL 添加一个参数。我使用了 default_url_options,但我希望参数在 URL 中可见。类似这样的事情:

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

我正在构建一个联盟跟踪系统,我希望人们共享链接,并能够在有人单击它时跟踪谁的链接被使用(为共享链接的人提供积分)。有关如何在应用程序中使用的每个 URL 中添加可见参数的任何提示?

谢谢!

I would like to add a parameter to each URL in my Rails 2.3.10 application. I played with the default_url_options but I want the parameter to be visible in the URL. Something like:

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

I'm building an affilate tracking system and I want people to share the link and be able to track who's link was used later when someone clicks it (to give points to the guy who shared the link). Any hints how I can add a visible parameter in each URL used in the application?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

慕烟庭风 2024-10-07 17:58:42

重写 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}}

Rewrite url_for

module ActionView::Helpers::UrlHelper
  def url_for options
    options.merge! {:token => generate_token}
    super
  end
end

or just add this to your application.rb file

config.default_url_options += {:token => proc{generate_token}}
虚拟世界 2024-10-07 17:58:42

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

def default_url_options
  {subdomain: 'www'}
end

define default_url_options in ApplicationController (or the relevant controller)

def default_url_options
  {subdomain: 'www'}
end
浅忆 2024-10-07 17:58:42

我将使用用户登录,或生成一个令牌,将其存储为用户表中的字段,然后将其添加到网址中,如下所示:

post_path(@post, :token => user.token)

如果您希望令牌对于帖子来说是唯一的,则类似地包含一个帖子令牌:

#post.rb
def generate_token user
  "#{self.token}-#{user.token}"  

#view
post_path(@post, :token => post.generate_token)

I would use the users login, or generate a token which you store as a field in the user table then add that to the url as so:

post_path(@post, :token => user.token)

If you want the token to be unique to the post then similarly include a post token:

#post.rb
def generate_token user
  "#{self.token}-#{user.token}"  

#view
post_path(@post, :token => post.generate_token)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文