gpt4 book ai didi

ruby-on-rails - 推荐计划 - cookie 等(Rails)

转载 作者:行者123 更新时间:2023-12-04 03:34:41 25 4
gpt4 key购买 nike

我正在为我的 Ruby on Rails 应用程序构建一个推荐程序,以便用户可以共享包含其用户 ID (app.com/?r=ID) 的链接。如果访问者登陆应用程序主页时存在推荐人 ID,则主页上的注册表单包含一个隐藏字段,其中填充有推荐人 ID。然后,如果被推荐的访问者注册, Controller 会检测 ID 并在推荐表中创建新的推荐。它有效,这是那块代码:

@referrer = User.find(params[:r]) rescue nil
unless @referrer.nil?
@referral = Referral.new(:referrer_id=>@referrer.id)
end

很简单的东西,但很容易破解(例如:如果访问者离开主页,引用者 ID 就会丢失)。我觉得 cookie 可能是一种更强大的方法,其中包含推荐人 ID 的 cookie 会在被推荐用户的计算机上存储 x 天。这是很常见的,尤其是像 Groupon 这样的附属计划,但我从来没有使用过 cookie,也不知道从哪里开始。

另外,有什么好的方法可以屏蔽或更改推荐系统的网址吗?而不是 app.com/?r=1842,我更喜欢 app.com/x39f3 <- 与给定用户相关联的随机生成的数字序列,没有 ?r= 部分。

任何帮助是极大的赞赏。谢谢!

最佳答案

要回答 cookie 问题,设置它们很容易:

cookies['app-referrer-id'] = params[:r]

然后以相同的格式读取它们(但没有分配)。我建议将此代码放在应用程序 Controller 中的 before_filter 中。这样,无论您的访问者首次登陆您网站的页面是什么,都会设置 cookie。

关于将 url 的结构更改为建议格式,您需要让推荐代码匹配特定模式,否则您可能会遇到路由问题。例如,如果它们匹配 3 个字母后跟三个数字的格式,您可以将以下内容放在您的路由文件中:
match '/:referrer_id' => 'app#index', :constraints => {:referrer_id => /[a-zA-Z]{3}[0-9]{3}/}

对 app#index 的引用应该更改为您处理推荐的 Controller ,您可以通过 params[:referrer_id] 访问referrer_id。

希望这有点用。

罗宾

关于ruby-on-rails - 推荐计划 - cookie 等(Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com