【问题标题】:Rails console won't load environment variables in secrets.ymlRails 控制台不会在 secrets.yml 中加载环境变量
【发布时间】:2017-09-21 08:26:09
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    TL;DR: spring stop

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

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

    【讨论】:

    • 在 Spring 存储库中查看此问题:github.com/rails/spring/issues/490
    • 是的,春天很烦人。这就是为什么我每次都使用 --skip-spring 来启动我的 Rails 应用程序。
    • 有趣的是,direnv (github.com/direnv/direnv) 因此无法正常工作,现在它可以正常工作了!谢谢
    • bin/spring stop 对于像我这样的 n00bz。
    • 嗨,乔!你只是救了我一些挫折。希望一切都好!
    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 2013-06-29
    相关资源
    最近更新 更多