2009-02-25 7 views
6

これはいつも私にとっては問題でした。レールには、Javaフレームワークのようなセッショントラッキングのメカニズムがありません。あなたのサイトに現在ログオンしている人を追跡するためにどのような方法を使用しますか?ユーザーがサイトのどこかをクリックするたびにlast_visitedフィールドを現在の時刻に設定し、そのフィールドを更新したユーザー(最後に10分間)を確認するという単純な方法を使用します。この他にどのような方法がありますか?Railsでオンラインユーザーを追跡する方法は?

答えて

5

あなたのセッションのためactive_record_storeを使用している場合は、このような何か試すことができます。

sessions = CGI::Session::ActiveRecordStore::Session.find(:all, :conditions => ["updated_at >= ?", 15.minutes.ago], :order => "created_at ASC") 
sessions.each do |session| 
    if session.data[:user] 
    online_users << User.find(session.data[:user]) 
    end 
end 
+1

素敵なソリューションですが、私はクッキーベースのセッションを使用しています。 – Vortex

+0

私は確かにこれが便利だと分かった。最新の2.xのバージョンでは、ActiveRecord :: SessionStore :: Session.findを使用する必要があります – vise

関連する問題