2009-02-25 11 views
6

Zawsze było to dla mnie problemem, ponieważ szyny nie mają mechanizmów śledzenia sesji, takich jak platformy java, jakie metody używasz do śledzenia, kto jest aktualnie zalogowany w twojej witrynie? Używam prostej metody, ustawiając pole Last_visited z bieżącym czasem za każdym razem, gdy użytkownik kliknie gdzieś w witrynie, a następnie sprawdzając użytkowników, którzy zaktualizowali to pole w (powiedzmy) ostatnich 10 minutach. Jakie są inne metody poza tym?Jak śledzić użytkowników online w Railsach?

Odpowiedz

5

Jeśli używasz active_record_store dla sesji, można spróbować coś takiego:

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

To miłe rozwiązanie, ale używam sesje cookies w oparciu. – Vortex

+0

Z pewnością mi się to przydało. W najnowszych wersjach rails 2.x musisz używać ActiveRecord :: SessionStore :: Session.find – vise

Powiązane problemy