如何在Rails中跟踪在线用户?

时间:2009-02-25 15:35:01

标签: ruby-on-rails session tracking auditing

对我来说这总是一个问题,因为rails没有像java框架那样的会话跟踪机制,你用什么方法来跟踪你当前在你网站上登录的人?我使用一种简单的方法,每当用户点击网站上的某个位置时,使用当前时间设置last_visited字段,然后检查已经更新该字段的用户(比如说)最后10分钟。除了这个之外还有哪些其他方法?

1 个答案:

答案 0 :(得分: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