2011-07-01 19 views
7

私はRails 3アプリでdeviseを使用しています。ログイン後の属性の更新

私がすることに成功記号をユーザーのいくつかの属性を更新したいと思います

を私はそれを次のようにやっている:。

を私は

def after_sign_in_path_for(user) 
    @user = current_user 
    @user.status = "online" 
    @user.save 

    root_path 
end 
をapplication_controller.rbするには、次のコードを追加しました

これを実行し、after_sign_in_pathを定義するためのメソッドを使用しないで、別の方法を使用することはできますか?

ありがとうございます!

+3

この回答[http://stackoverflow.com/questions/4850057/devise-call-backs](http://stackoverflow.com/questions/4850057/devise-call-backsをチェックしてください) – eugen

+0

感謝ユーゲン!それはまさに私が探していたものです! –

+1

Eugen、あなたはURLを指すことでこの質問に "答える"ことができますか?そうすれば、この質問は未回答の質問には現れません。 –

答えて

3

フックでこれを行うことができます。

##config/initializers/devise.rb 

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 
関連する問題