Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Configurando o cache_store em um inicializador


Após algumas pesquisas, uma explicação provável é que o inicializador initialize_cache é executado muito antes dos rails/inicializadores. Portanto, se não for definido anteriormente na cadeia de execução, o armazenamento em cache não será definido. Você tem que configurá-lo mais cedo na cadeia, como em application.rb ou ambientes/produção.rb

Minha solução foi mover o carregamento do APP_CONFIG antes que o aplicativo seja configurado assim:
APP_CONFIG = YAML.load_file(File.expand_path('../config.yml', __FILE__))[Rails.env]

e depois no mesmo arquivo:
config.cache_store = :redis_store, APP_CONFIG['redis']

Outra opção era colocar o cache_store em um bloco before_configuration, algo assim:
config.before_configuration do
  APP_CONFIG = YAML.load_file(File.expand_path('../config.yml', __FILE__))[Rails.env]
  config.cache_store = :redis_store, APP_CONFIG['redis']
end