定期更新用户最后访问时间,超过一定时间认为是不在线。
after_filter :update_last_access
def update_last_access
if Time.now - (session[:last_access] || 0) > 300
User.update(session[:user_id], :last_access_time => Time.now)
session[:last_access] = Time.now
end
end
class User
def online?
Time.now - last_access_time > 300
end
end
after_filter :update_last_access
def update_last_access
if Time.now - (session[:last_access] || 0) > 300
User.update(session[:user_id], :last_access_time => Time.now)
session[:last_access] = Time.now
end
end
class User
def online?
Time.now - last_access_time > 300
end
end