Jak warunkowo przypisać ActionController :: Base.session w szynach 2.3.3

Mam aplikację szyny, która ma następującą zawartość w pliku 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

Tak więc podczas normalnych operacji widzimy obiekty ActiveRecord utworzone w bazie danych dla każdej sesji. Problem polega na tym, że nie zawsze chcemy tworzyć sesje dla żądań - chcielibyśmy mieć możliwość wyłączenia tworzenia sesji dla automatycznych żądań. W bazie danych widzimy tysiące rekordów sesji, po jednym dla każdego automatycznego żądania. Przed wersjami 2.3.3 możliwe było następujące:

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

ale teraz w szynach 2.3.3 „session: off” jest przestarzałe, ponieważ sesje są teraz ładowane leniwie - jeśli ich nie używasz, nie są tworzone. Problem wydaje się być taki, że obiekt sesji jest zawsze przypisywany w pliku sessionstore.rb i dlatego zawsze jest tworzony. Jeśli usunę blok przypisania sesji z pliku konfiguracyjnego, żadne rekordy sesji nie pojawią się po automatycznym żądaniu. Moje pytanie brzmi, jak mogę przenieść przypisania konfiguracji do skrótu sesji z session_store.rb i do klasy ApplicationController (lub gdzie indziej), gdzie sesja może być warunkowo przypisana tylko wtedy, gdy żądanie nie jest zautomatyzowane? Obawiam się, że dane konfiguracyjne sesji mogą być potrzebne przed wykonaniem procedury obsługi kontrolera. Gdzie umieściłbym przypisanie wartości klucza sesji?

Z góry dziękuję za wszelką pomoc.

questionAnswers(2)

yourAnswerToTheQuestion