环境变量没有被加载到应用程序中?

Environment variables not being loaded into app?

在rails5中,我曾经在应用程序的根目录中创建一个名为.env的文件,向其中添加如下内容:

MY_VARIABLE=1234

并使用 ENV["MY_VARIABLE"]

访问应用内的变量

但是在 rails 6 应用程序中,我做了同样的事情,它 returns nil。当我 运行 ENV 我看到很多环境变量,但是 none 在 .env.

我不确定为什么会这样?

运行 spring stop 并重新启动您的 rails 应用程序。但是,如果这不起作用,我想告诉您 Rails 6 现在支持多个凭据。您可以使用以下格式:

从您的 rails 终端,运行 EDITOR=vim rails credentials:edit。这将在 /config 中为您创建 credentials.yml.encmaster.key 文件,如果您没有的话。

然后您可以将您的凭据放入这样的 YAML 文件中

development:
  aws:
    access_key_id: 123
    secret_access_key: 345

production:
  aws:
    access_key_id: 1f3649fe-ebbd-11e9-81b4-2a2ae2dbcce4
    secret_access_key: 203060d3a5456fa6cd2da3c958001440

您可以通过这种方式获取凭据

> Rails.application.credentials[Rails.env.to_sym][:aws][:access_key_id]
#=> "123"

然后你可以继续 bundle install 和 运行 rails server

您可以阅读此 link 了解如何获取您的凭据。