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?
6
A
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
To miłe rozwiązanie, ale używam sesje cookies w oparciu. – Vortex
Z pewnością mi się to przydało. W najnowszych wersjach rails 2.x musisz używać ActiveRecord :: SessionStore :: Session.find – vise