Ruby on rails 如何存储新用户被引用的位置?使用Rails+;发明
我有一个使用Desive的rails应用程序。我很想知道,在用户表中是否有可能以某种方式跟踪一个新用户来自哪里,HTTP引用者 为了追踪病毒循环,我想知道哪些来自Facebook、Twitter、LinkedIn和Google+Ruby on rails 如何存储新用户被引用的位置?使用Rails+;发明,ruby-on-rails,ruby-on-rails-3,devise,Ruby On Rails,Ruby On Rails 3,Devise,我有一个使用Desive的rails应用程序。我很想知道,在用户表中是否有可能以某种方式跟踪一个新用户来自哪里,HTTP引用者 为了追踪病毒循环,我想知道哪些来自Facebook、Twitter、LinkedIn和Google+ 有什么想法吗?看到有人这样做吗?可能的在rails应用程序中,这应该位于何处?还是很新的。谢谢,可以这样做。可能需要一些调整和修复,但你会有一个想法 在对应用程序控制器进行筛选之前,您将为任何操作调用它 def landing_filter if from_oth
有什么想法吗?看到有人这样做吗?可能的在rails应用程序中,这应该位于何处?还是很新的。谢谢,可以这样做。可能需要一些调整和修复,但你会有一个想法 在对应用程序控制器进行筛选之前,您将为任何操作调用它
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
从其他站点应该是检查推荐人url中域名的方法,如果它与您的匹配,则返回false
,否则返回true
在designe/registration/new.erb.html视图中,加载项表单隐藏字段
<%= f.hidden_field :referrer, session[:reserrer] %>
并且不要忘记为用户添加带有新数据库字段的迁移在创建用户副本信息到用户表之后,将referer保存到某处。使用session保存referer是可行的,但永久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
不是修改每个操作,而是在每次创建对象时处理自动保存操作
一个很好的gem可以自动保存referer和其他需要的信息
. 您可以选择手动保存信息还是使用清扫器自动保存信息。何时?当他登陆网站,然后注册或每次访问时?只要有新的User.record是createdIs request.env[“HTTP_REFERER”]在本地不可用?谢谢,但知道为什么本地主机上没有显示REFERER吗?是否在本地禁用了引用?您的浏览器应始终发送引用,除非您在浏览器中手动键入url或最初打开页面(例如,从浏览器书签菜单)。要检查此示例的工作原理,请尝试使用url
http://localhost:3000/your_controller/action
并检查日志或调试器中的引用者url。它应该与您单击链接的facebook页面url相同。您知道如何从其他站点实现该方法吗?我不确定您的意思是什么