3
我正在查看Kissmetrics(分析应用程序)JS API文档,并且他们有一个“标识”方法,可让您告诉Kissmetrics有关用户的信息。这里是他们的文件说什么:在用户注册时执行JS代码/使用Rails + Devise登录
我们建议你打电话确定在两种情况下:
当用户成功签约 当用户成功登录,无论是通过cookie或者通过登录页面
实现该目标的最佳方法是什么?如何检测用户刚刚注册或登录?
我正在查看Kissmetrics(分析应用程序)JS API文档,并且他们有一个“标识”方法,可让您告诉Kissmetrics有关用户的信息。这里是他们的文件说什么:在用户注册时执行JS代码/使用Rails + Devise登录
我们建议你打电话确定在两种情况下:
当用户成功签约 当用户成功登录,无论是通过cookie或者通过登录页面
实现该目标的最佳方法是什么?如何检测用户刚刚注册或登录?
让我们一分为二的问题:注册并登录
在新用户注册了你的应用程序只需添加在你after_create
钩User
模型可以检测。类似于
class User < ActiveRecord::Base
after_create :register_hook
def register_hook
# your code here
end
end
检测用户登录时有点肮脏。设计修改用户在登录时的user.current_sign_in_at
属性,以便您可以在用户模型中添加before_save
钩子并检查current_sign_in_at
属性是否已更改。它应该是这样的:
class User < ActiveRecord::Base
before_save :login_hook, :if => current_sign_in_at_changed?
def login_hook
# your code here
end
end
一旦你在/注册检测标志的权利回调,你可以创建一个信息一个cookie,并从JavaScript的阅读或写的User
一个辅助方法模型,写这样的事情在你的布局:
<% if current_user.just_signed_in %>
<script type="text/javascript">
// Your sign in stats code here
</script>
<% end %>
<% if current_user.just_signed_up %>
<script type="text/javascript">
// Your sign up stats code here
</script>
<% end %>
按照这种方式,完整的模型应该是:
class User < ActiveRecord::Base
after_create :register_hook
before_save :login_hook, :if => current_sign_in_at_changed?
attr_accessor :just_singed_up, :just_signed_in
def register_hook
@just_signed_up = true
end
def login_hook
@just_signed_in = true
end
end
这是有道理的,非常感谢! – Sacha
这不起作用(我只是试图使用注册部分)。你碰巧知道如何让它在当前版本中工作? – Brandon
属性@just_signed_in不存储在数据库中。如果用户在注册后重定向,那么这个变量不会被设置。 –