2011-07-18 10 views
2

私はdeviseを使い始めています。ユーザー属性をオンラインまたはオフラインに更新したいと考えています。私はこのログインしてdevise gemでログアウトした後にユーザー属性を更新するには

class ApplicationController < ActionController::Base 
    private 

    def after_sign_in_path_for(resource_or_scope) 
    #update user status to online 
    root_path 
    end 

    def after_sign_out_path_for(resource_or_scope) 
    #update user status to offline 
    root_path 
    end 
end 

持っているが、私は過去にこれをやった

+0

の場合は、 'SessionsController'の' create'と 'destroy'アクションに追加する必要があるようです。 – fl00r

+0

私はそれを手に入れます。しかし、私はこれらのアクションの下で何を書こうとしていますか?私は認証コードを書くのがあまり良くありません – Uchenna

答えて

5

更新方法を記述する方法はありませんません:Devise call backs

+0

しかし、このフックをどこに置くのですか – Uchenna

+0

ユーザモデルです。 – s84

+0

ありがとうございます。今、私は1つの平和の中でフェイの宝石を使う方法を学ぶことができます – Uchenna

0

Warden::Manager.after_authentication do |user,auth,opts| 
    user.update_attribute(:currently_signed_in, true) 
end 

Warden::Manager.before_logout do |user,auth,opts| 
    user.update_attribute(:currently_signed_in, false) 
end 

この質問を参照してください。私はこの答えを見た後、上記の答えに記載されているように護衛のフックを使用しましたが、このエラーが発生しました

未定義のメソッド#

関連する問題