2009-02-25 57 views
6

这对我来说一直是一个问题,因为rails没有像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

这是很好的解决方案,但我使用基于Cookie的会话。 – Vortex 2009-03-02 03:10:34