How to track online users in Rails?

人盡茶涼 提交于 2019-12-21 01:18:39

问题


This was always a problem for me, as rails doesn't have some mechanisms for session tracking like java frameworks do, what methods do you use to track who is currently logged on your site? I use a simple method by setting up last_visited field with current time every time user clicks somewhere on the site, and then checking for users which have updated that field in (lets say) last 10 minutes. What other methods are there besides this one?


回答1:


If you are using the active_record_store for your sessions, you can try something like this:

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


来源:https://stackoverflow.com/questions/586499/how-to-track-online-users-in-rails

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!