Warm tip: This article is reproduced from serverfault.com, please click

ruby on rails-环境变量未加载到应用程序中?

(ruby on rails - Environment variables not being loaded into app?)

发布于 2020-11-29 14:56:25

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

MY_VARIABLE=1234

并使用以下命令访问应用程序内的变量 ENV["MY_VARIABLE"]

但是在Rails 6应用程序中,我做同样的事情,并且返回nil运行时,ENV我看到了很多环境变量,但是都没有.env

我不确定为什么会这样?

Questioner
stevec
Viewed
11
Afolabi Olaoluwa Akinwumi 2020-11-29 23:47:03

运行spring stop并重新启动Rails应用程序。但是,如果那行不通,我想告诉你Rails 6现在支持多种凭证。你可以使用以下格式:

在Rails终端上,运行EDITOR=vim rails credentials:edit如果你没有,它将为你创建credentials.yml.encmaster.key归档在内部/config

然后,你可以将凭据放入这样的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

你可以从此链接阅读有关如何获取凭据的信息。