Rails 控制台不会在 secrets.yml 中加载环境变量

Rails console won't load environment variables in secrets.yml

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

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

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

TL;DR: spring stop

事实证明,就像在事情没有任何意义的情况下发生了很多次一样,Spring 是罪魁祸首!我通过 运行 spring stop 解决了这个问题(感谢 a related discussion),然后再次尝试,之后它完美地工作了!

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