环境变量没有被加载到应用程序中?
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.enc
和 master.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 了解如何获取您的凭据。
在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.enc
和 master.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 了解如何获取您的凭据。