Rails控制台不会在secrets.yml

时间:2017-04-24 15:11:46

标签: ruby-on-rails environment-variables ruby-on-rails-5 rails-console

我正在尝试使用secrets.yml加载环境变量调试问题,方法是在开发中设置一些环境变量并运行rails c来检查事物。当我以这种方式加载Rails.applications.secrets时,它没有拾取我设置的任何环境变量(即SECRET_KEY_BASE

如果我使用相同的环境变量设置运行应用程序,它会很好地选择它们(我使用RubyMine来运行应用程序,但是从终端运行rails c

在我的rails控制台中,我可以看到我使用ENV['SECRET_KEY_BASE']设置的环境变量,但它并未显示在Rails.application.secrets中。为什么呢?

1 个答案:

答案 0 :(得分:12)

TL; DR: spring stop

事实证明,正如事情没有任何意义所发生的那么多次,春天是罪魁祸首!我通过运行spring stop然后再次尝试解决了这个问题(感谢a related discussion),之后它完美运行了!

显然,Spring正在缓存环境或Rails应用程序的某些部分,而忽略了在环境变量发生变化时重新加载它们。