Я думаю, вам придется сделать это вручную, поскольку в активном хранилище записей не реализована опция expire_after.Таким образом, в рамках вашего (я полагаю) до фильтра вы должны сделать следующее:
def authenticate
if session[:logged_in]
reset_session if session[:last_seen] < 2.minutes.ago
session[:last_seen] = Time.now
else
... authenticate
session[:last_seen] = Time.now
end
end
Очевидно, это не завершено, но оно должно дать вам основную идею.
ОБНОВЛЕНИЕ:
Кажется, что функциональность присутствует в рельсах с версии 2.3.Я нашел соответствующий код здесь .Это AbstractStore, который должен служить базовым классом для всех производных.Итак, как предлагает Дадуда, должно работать следующее:
Some::Application.config.session_store :active_record_store, {
expire_after: 24.hours,
}