我正在尝试使用secrets.yml
加载环境变量调试问题,方法是在开发中设置一些环境变量并运行rails c
来检查事物。当我以这种方式加载Rails.applications.secrets
时,它没有拾取我设置的任何环境变量(即SECRET_KEY_BASE
)
如果我使用相同的环境变量设置运行应用程序,它会很好地选择它们(我使用RubyMine来运行应用程序,但是从终端运行rails c
)
在我的rails控制台中,我可以看到我使用ENV['SECRET_KEY_BASE']
设置的环境变量,但它并未显示在Rails.application.secrets
中。为什么呢?
答案 0 :(得分:12)
TL; DR: spring stop
事实证明,正如事情没有任何意义所发生的那么多次,春天是罪魁祸首!我通过运行spring stop
然后再次尝试解决了这个问题(感谢a related discussion),之后它完美运行了!
显然,Spring正在缓存环境或Rails应用程序的某些部分,而忽略了在环境变量发生变化时重新加载它们。