Только для этого сеанса вы также можете сохранить текущее время в сеансе:
session[:user_id] = "USER_ID_HERE"
session[:expires_at] = Time.current + 2.minutes
Затем в before_action
определите некоторый метод для проверки:
if session[:expires_at] < Time.current
session.delete(:user_id)
session.delete(:expires_at)
end