【问题标题】:How to track online users in Rails?如何在 Rails 中跟踪在线用户?
【发布时间】:2010-04-21 21:17:25
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails session tracking auditing


    【解决方案1】:

    如果您在会话中使用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
    

    【讨论】:

    • 这是一个不错的解决方案,但我使用的是基于 cookie 的会话。
    • 我当然觉得这很有用。在最新的 rails 2.x 版本中,您必须使用 ActiveRecord::SessionStore::Session.find
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 2019-05-14
    • 2019-01-26
    相关资源
    最近更新 更多