sql >> Base de Datos >  >> NoSQL >> Redis

Configuración de cache_store en un inicializador

Después de algunas investigaciones, una explicación probable es que el inicializador initialize_cache se ejecuta mucho antes que los rieles/inicializadores. Entonces, si no se define anteriormente en la cadena de ejecución, no se establecerá el almacenamiento en caché. Tienes que configurarlo antes en la cadena, como en application.rb o environments/production.rb

Mi solución fue mover la carga de APP_CONFIG antes de que la aplicación se configure así:

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

y luego en el mismo archivo:

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

Otra opción era poner cache_store en un bloque before_configuration, algo como esto:

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