Redis
 sql >> Base de données >  >> NoSQL >> Redis

Définir le cache_store dans un initialiseur

Après quelques recherches, une explication probable est que l'initialiseur initialize_cache est exécuté bien avant les rails/initialiseurs. Donc, s'il n'est pas défini plus tôt dans la chaîne d'exécution, le magasin de cache ne sera pas défini. Vous devez le configurer plus tôt dans la chaîne, comme dans application.rb ou environnements/production.rb

Ma solution consistait à déplacer le chargement APP_CONFIG avant que l'application ne soit configurée comme ceci :

APP_CONFIG = YAML.load_file(File.expand_path('../config.yml', __FILE__))[Rails.env]

puis dans le même fichier :

config.cache_store = :redis_store, APP_CONFIG['redis']

Une autre option consistait à placer le cache_store dans un bloc before_configuration, quelque chose comme ceci :

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