2011-06-20 16 views
4

私はRuby on Rails 3.0.9 WebアプリケーションにログインするためにDeviseを使用しています。私はセッションの仕組みになじみがありません。彼らはアプリケーションではなくブラウザで管理されますか?Ruby on Rails - Deivse - 現在ログインしているユーザを確認

現在オンラインになっているユーザーのリストを取得したいと考えています。そして、最終的に、このリストを自動的に更新するための何らかのバックグラウンドプロセスを実行します。

これはどのようにして達成できますか?助ける宝石はありますか?そして、最後に見られた誰を検討

def current_user 
    # Stuff... 
    @current_user.update_attributes(:last_seen_at => DateTime.now) 
    @current_user 
end 

はそれを行うための一つの方法は、列last_seen_atを持っているし、あなたのcurrent_user方法でその列を更新している、

アンディ

答えて

2

をありがとう最後の5分間は「現在ログインしています」と表示されます。

+1

devise:trackableを使用して、この動作をdeviseから取得できます。 https://github.com/plataformatec/devise –

+0

ありがとう、それはそれを行う良い方法になるように見えます。 before_filterを使用して、すべての要求の前にその値を変更してから、時間を比較します。ありがとう! – ardavis

+0

私は、すべてのクエストでその属性を更新するのは大変だと思っています。このような単純な価値を設定すると、どれくらいのパフォーマンスが失われますか?私が望むものを達成する他の方法があるかどうかを教えてください。再度、感謝します! – ardavis

関連する問題