如何存储新用户的推荐位置? 使用Rails + Devise

我有一个使用设计的rails应用程序。 我很想知道,在User表中是否有可能以某种方式跟踪新用户来自哪里,HTTP引用者?

我想知道哪些来自Facebook,Twitter,LinkedIn,Google+以跟踪病毒循环。

有任何想法吗? 看到有人这样做吗? 可能? 它应该放在rails应用程序中的哪个位置? 还是很新的。 谢谢

它可以这样做。 可能需要一些调整和修复但你会得到一个想法在应用程序控制器的filter之前制作,你将调用它进行任何操作

def landing_filter if from_other_site(request.referrer) and !session[:referer].blank? session[:referer] = request.referrer #you don't want to delete first entrance end end 

from_other_site应该是在referrer url中检查域名的方法,如果它匹配你的返回false ,否则为true

在devise / registration / new.erb.html视图中添加表单隐藏字段

 <%= f.hidden_field :referrer, session[:reserrer] %> 

并且不要忘记为用户添加具有新数据库字段的迁移

在将用户复制信息创建到用户表之后,在某处保存引用。 使用会话保存引用工作,但永久cookie更好。 即使用户关闭浏览器,Cookie也可以保留信息,并在第二天再次出现。

 # so basically in ApplicationContreller using before_filter def referer_before_filter if cookies[:referer].blank? cookies.permanent[:referer] = request.env["HTTP_REFERER"] || 'none' end end # and in signup action somewhere else saving that information @user.referer = cookies[:referer] # or maybe to some other table 

您不必修改每个操作,也可以使用rails sweepers / observers在每次创建对象时处理自动保存。

自动保存引用者和其他所需信息的好gem是https://github.com/holli/referer_tracking 。 您可以选择手动保存信息还是使用扫地机自动保存。