我有一些工作的代码现在似乎已被打破,而我正在努力寻找原因。这个问题似乎部分集中在我的推荐系统上。
一旦用户注册,他们将获得一个唯一的推荐代码,即http://localhost:3000/?ref=b9270b78a6(来自我的本地机器)。理论上,他们可以将此传递给他们的朋友,当他们的朋友通过他们的推荐网址访问该网站时,我会记录参考并将初始用户归功于+1推荐。
当它工作时,URL进来,程序发出GET命令" /?ref = b9270b78a6"并被重定向到' / frontpage'但是ref被存储为params [:ref]。现在params [:ref]是空白的,它基本上让我的程序说没有人推荐其他人。
我似乎无意中删除了一些重要的内容,但我不知道是什么。
我的问题是:a)我不知道如何捕获' b9270b78a6'作为婴儿车[:ref],最重要的是,我似乎失去了这样做的机会,因为重定向将浏览器指向通用URL并执行' StaticPagesController#frontpage'在我能够抓住代码之前控制器动作:
Started GET "/?ref=b9270b78a6" for ::1 at 2015-10-20 16:19:36 -0400
Started GET "/frontpage" for ::1 at 2015-10-20 16:19:36 -0400
Processing by StaticPagesController#frontpage as HTML
简而言之:关于我如何获取ref代码并将其保存为params [:ref]的任何想法?
我甚至不知道您可能需要看到哪些代码(控制器,模型,视图)才能找到最底层的代码,因此非常乐意使用可能有用的内容进行更新。我最接近黑暗的是,我需要使用URI :: parse(url)来解析传入的URL,但是再次 - 当我可能这样做的时候,它被重定向,我不能。
非常感谢任何想法!
答案 0 :(得分:2)
# application_controller.rb
before_action :set_ref
def set_ref
session[:ref] ||= params[:ref] if params[:ref]
end
之后您可以在保存时获取
referring_user_id = session[:ref]
答案 1 :(得分:0)
虚假警报每个人......这是我的路线。到底是什么......我在8个星期内没有改变它们,它们突然崩溃了。更不用说它是最无害的小路线。绝对没有理由这应该发生,但是Happy Rails,确实如此。
感谢@Swards的帮助和学习经历!