Authlogic предоставляет вам все виды автоматических столбцов, которые вам на самом деле не нужно обновлять или поддерживать самостоятельно, они поддерживаются фактическим потоком кода самой Authlogic.
Эти поля могут содержать некоторые основные проблемы, связанные с функциональностью, такие как количество попыток входа в систему, IP-адрес, с которого была предпринята попытка, или даже какой IP-адрес был в последний раз при входе пользователя в систему. Fun.
Волшебная колонка, которая поможет нам определить, кто, вероятно, находится в сети, - это колонка last_request_on, которая в основном указывает, когда в последний раз пользователь делал запрос к вашему приложению.
Второй параметр, который нам понадобится для более точного выбора, - это параметр конфигурации с именем logged_in_timeout, который устанавливает время ожидания, по истечении которого устаревший сеанс истекает, по умолчанию он истекает через 10 минут.
, поэтому, если вы установите срок действия сеанса на 30 минут:
class User << ActiveRecord::Base
acts_as_authentic do |c|
c.logged_in_timeout 30.minutes
end
end
поиск таких пользователей довольно прост:
module OnlineUsers
def count_online_users
User.count(:conditions => ["last_request_at > ?", 30.minutes.ago])
end
end