Como atribuir condicionalmente ActionController :: Base.session em trilhos 2.3.3

Eu tenho um aplicativo de trilhos que tem o seguinte conteúdo no arquivo 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

Portanto, durante operações normais, estamos vendo objetos ActiveRecord criados no banco de dados para cada sessão. A questão é que nem sempre queremos criar uma sessão para solicitações. Gostaríamos de poder desativar a criação de sessões para solicitações automáticas. Estamos vendo milhares de registros de sessão no banco de dados, um para cada solicitação automatizada. Antes dos trilhos 2.3.3, o seguinte era possível:

class ApplicationController < ActionController::Base
  session :off
  ...
end

mas agora no rails 2.3.3 "session: off" foi preterido porque as sessões agora são carregadas com preguiça - se você não usá-las, elas não serão criadas. O problema parece ser que o objeto de sessão é sempre designado no arquivo sessionstore.rb e, portanto, sempre criado. Se eu remover o bloco de designação de sessão do arquivo de configuração, nenhum registro de sessão será exibido após uma solicitação automatizada. Minha pergunta é: como posso mover as atribuições de configuração para o hash de sessão fora de session_store.rb e para a classe ApplicationController (ou em outro lugar) onde a sessão pode ser atribuída condicionalmente somente se uma solicitação não for automatizada? Estou preocupado que os dados de configuração da sessão possam ser necessários antes que o manipulador do controlador seja executado. Onde eu colocaria a atribuição dos valores da chave da sessão?

Agradecemos antecipadamente por qualquer ajuda.

questionAnswers(2)

yourAnswerToTheQuestion