問題を 2 つに分けましょう: 登録とログインです。
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