首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在用户注册时执行JS代码/用Rails登录+设计

在用户注册时执行JS代码/用Rails登录+设计
EN

Stack Overflow用户
提问于 2011-10-15 17:10:28
回答 1查看 1.9K关注 0票数 3

我正在查看Kissmetrics (分析应用程序) JS文档,它们有一个“识别”方法,可以让您告诉Kissmetrics关于用户的信息。他们的医生是这么说的:

我们建议您在两个场景中调用标识:

当用户成功登录时,用户通过cookie或登录页面成功注册时

实现这一目标的最佳途径是什么?如何检测用户刚刚注册或注册的时间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-24 01:27:27

让我们把问题分成两部分:注册和登录。

您可以检测新用户何时在应用程序中注册,只需在您的after_create模型中添加一个User钩子即可。有点像

代码语言:javascript
复制
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属性是否已更改。应该是这样的:

代码语言:javascript
复制
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模型编写一个助手方法,并在布局中编写类似这样的内容:

代码语言:javascript
复制
<% 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 %>

按照这种方式,完整的模式是:

代码语言:javascript
复制
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
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7779321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档