首页 > 解决方案 > 环境变量未加载到应用程序中?

问题描述

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

MY_VARIABLE=1234

并访问应用程序内的变量ENV["MY_VARIABLE"]

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

我不确定为什么会这样?

标签: ruby-on-railsruby-on-rails-6

解决方案


运行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

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


推荐阅读