当我进入服务器并运行sudo RAILS_ENV=integration bundle exec rails c
时,我收到一条错误,指出Devise.secret_key was not set. Please add the following to your Devise initializer
。 secret_key_base
在OpsWorks界面中设置为环境变量。此外,如果我只是运行sudo bundle exec rails c
(加载开发环境),它加载正常,因为secrets.yml在文件中有硬编码值。
所以我想我的问题是,如何验证我的环境变量是否正在应用于应用程序?当我部署应用程序并输出Rails.application.secrets.secret_key_base
时,我获得了开发secret_key_base,而不是环境中加载的那个。或者,如果secrets.yml
中的开发块中不存在env变量,则env变量将返回nil
下面的secrets.yml片段。
感谢您的帮助/见解!
integration:
secret_key_base: <%= ENV['SECRET_KEY_BASE'] %>