如何存储新用户的推荐位置? 使用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 。 您可以选择手动保存信息还是使用扫地机自动保存。
- BUG Segmentation fault ruby 2.0.0p481(2014-05-08修订版45883)x86_64-darwin13.2.0
- 部署重写的Github / Heroku应用程序
- Nokogirigem安装错误与狂欢
- 元编程有副作用时如何重构?
- 如何使用Cloudinary in Rails将直接上传字段与模型相关联?
- 安装debug_inspector(0.0.2)时发生错误,Bundler无法继续
- 如何将现有的Rails 3应用程序转换为引擎?
- 是否可以通过PC上的模拟器使用Watir与Ruby on Rails进行Web抓取Android应用程序?
- Rails 3.0通过回答问题来设置重置密码