2009-02-25 9 views
6

Esto siempre fue un problema para mí, ya que los rieles no tienen algunos mecanismos para el seguimiento de sesiones como lo hacen los marcos java, ¿qué métodos usas para rastrear quién está actualmente conectado en tu sitio? Utilizo un método simple al configurar el último campo visitado con la hora actual cada vez que el usuario hace clic en algún lugar del sitio, y luego verificar si los usuarios han actualizado ese campo en (digamos) los últimos 10 minutos. ¿Qué otros métodos hay además de este?¿Cómo rastrear usuarios en línea en Rails?

Respuesta

5

Si está utilizando el active_record_store para sus sesiones, puede intentar algo como esto:

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

Eso es buena solución, pero estoy usando sesiones basadas en cookies. – Vortex

+0

Ciertamente me pareció útil. En las últimas versiones de los carriles 2.x, debes usar ActiveRecord :: SessionStore :: Session.find – vise

Cuestiones relacionadas