Questo è sempre stato un problema per me, dato che le rotaie non hanno meccanismi per il tracciamento delle sessioni come fanno i framework java, quali metodi usi per tenere traccia di chi è attualmente connesso al tuo sito? Io uso un metodo semplice impostando il campo last_visited con l'ora corrente ogni volta che l'utente fa clic da qualche parte sul sito e poi controlla gli utenti che hanno aggiornato quel campo in (diciamo) ultimi 10 minuti. Quali altri metodi ci sono oltre a questo?Come tracciare gli utenti online in Rails?
6
A
risposta
5
Se si utilizza il active_record_store
per le sessioni, si può provare qualcosa di simile:
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
Che bello soluzione, ma io sto usando le sessioni basate sui cookie. – Vortex
L'ho trovato sicuramente utile. Nelle versioni di rails 2.x più recenti devi utilizzare ActiveRecord :: SessionStore :: Session.find – vise