Как условно назначить ActionController :: Base.session в рельсах 2.3.3
У меня есть приложение rails, которое имеет следующий контент в файле config / initializers / session_store.rb:
ActionController::Base.session = {
:key => '_app_session',
:secret => 'a really long string here',
:expire_after => 2.minutes
}
ActionController::Base.session_store = :active_record_store
Таким образом, во время обычных операций мы видим объекты ActiveRecord, созданные в базе данных для каждого сеанса. Проблема заключается в том, что мы не всегда хотим создавать сеанс для запросов - мы хотели бы иметь возможность отключить создание сеанса для автоматических запросов. Мы видим тысячи записей сеансов в базе данных, по одной на каждый автоматический запрос. До рельсов 2.3.3 было возможно следующее:
class ApplicationController < ActionController::Base
session :off
...
end
но теперь в рельсах 2.3.3 "сессия: выкл" устарела, поскольку сеансы теперь загружаются с отложенной загрузкой - если вы их не используете, они не создаются. Кажется, проблема в том, что объект сеанса всегда назначается в файле sessionstore.rb и поэтому всегда создается. Если я удаляю блок назначения сеанса из файла конфигурации, то после автоматического запроса записи сеанса не отображаются. У меня вопрос, как я могу переместить назначения конфигурации в хэш сеанса из файла session_store.rb и в класс ApplicationController (или в другое место), где сеанс может быть условно назначен, только если запрос не автоматизирован? Я обеспокоен тем, что данные конфигурации сеанса могут потребоваться до того, как будет выполнен обработчик контроллера. Куда бы я положил назначение значений ключей сеанса?
Заранее благодарю за любую помощь.