Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何存储新用户被引用的位置?使用Rails+;发明_Ruby On Rails_Ruby On Rails 3_Devise - Fatal编程技术网

Ruby on rails 如何存储新用户被引用的位置?使用Rails+;发明

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

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

为了追踪病毒循环,我想知道哪些来自Facebook、Twitter、LinkedIn和Google+


有什么想法吗?看到有人这样做吗?可能的在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相同。您知道如何从其他站点实现该方法吗?我不确定您的意思是什么