Hi,
I'm using ActiveRecordStore to track user sessions. I've used as a base the next sources:
- http://blog.levicole.com/articles/category/ror - http://matt-beedle.com/2006/12/13/rails-how-to-find-out-who-is-online/ - Rails Track Online Users through Session – Relentless Simplicity
This is what I currently do:
IN SESSION CONTROLLER
def create self.current_user = User.authenticate(params[:login], params[:password]) if logged_in? session.model.user_id = current_user.id
if params[:remember_me] == "1" self.current_user.remember_me end
current_user.update_attribute(:online, true) redirect_back_or_default('/')
else render :action => 'new' end end
def destroy self.current_user.forget_me if logged_in? reset_session current_user.update_attribute(:online, false) redirect_back_or_default('/') end
FINDING SESSIONS
@online_sessions = CGI::Session::ActiveRecordStore::Session.find( :all, :conditions => [ "updated_at > ? and user_id is not null", Time.now() - 10.minutes ], :limit => 50 )