Если вы используете active_record для session_store, вы можете легко запросить таблицу сеансов и отличия ваших активных пользователей от таблицы Users следующим образом:
time_period = 24.hours.ago
number_of_active_users = User.where('updated_at > ?', time_period).count
number_of_active_sessions = ActiveRecord::SessionStore::Session.where('updated_at > ?', time_period).count
number_of_guests = number_of_active_sessions - number_of_active_users
Инструкции по настройке session_store для использования active_record находятся в config / initializers / session_store.rb.
Вам потребуется добавить фоновый рабочий инструмент для очистки устаревших сеансов, чтобы таблица не раздувалась без необходимости.