2

J'essaie de déboguer un problème avec les variables d'environnement de chargement secrets.yml, en définissant des variables d'environnement en développement et en exécutant rails c pour inspecter les choses. Quand je charge Rails.applications.secrets de cette façon, il ne prend aucune des variables d'environnement que j'ai définies (à savoir, SECRET_KEY_BASE)La console Rails ne chargera pas les variables d'environnement dans les fichiers secrets.yml

Si j'exécute l'application avec le même ensemble de variables d'environnement, il les ramasse bien (je suis en utilisant RubyMine pour exécuter l'application, mais en cours d'exécution rails c du terminal)

dans ma console de rails, je peux voir la variable d'environnement, je l'ai mis à l'aide ENV['SECRET_KEY_BASE'], mais il ne se présente pas dans Rails.application.secrets. Pourquoi?

Répondre

5

TL; DR:spring stop

Il se trouve, comme cela est arrivé tant de fois quand les choses ne font aucun sens, le printemps est le coupable! J'ai résolu ce problème (grâce à a related discussion) en exécutant spring stop puis en essayant à nouveau, après quoi cela a fonctionné parfaitement!

Apparemment, Spring mettait en cache l'environnement ou certaines parties de l'application Rails et négligeait de les recharger lorsque les variables d'environnement changeaient.

+1

Voir ce numéro dans le dépôt Spring: https://github.com/rails/spring/issues/490 – mltsy

+1

Yeah Spring est ennuyeux. C'est pourquoi je démarre mes applications rails avec --skip-spring à chaque fois. – dpalazzari

+0

Intéressant, direnv (https://github.com/direnv/direnv) ne fonctionnait pas correctement à cause de cela, et maintenant ça marche! Je vous remercie – Pierre