如何设置环境变量?
我已经尝试过,你可以看到。
的 代码段:
应用/ local_env.yml:
MAIL_DOMAIN: 'gmail.com'
MAIL_USERNAME: "username@googlemail.com"
MAIL_PASSWORD: "password"
应用/配置/ application.rb中:
config.before_configuration do
env_file = File.join(Rails.root, 'config', 'local_env.yml')
YAML.load(File.open(env_file)).each do |key, value|
ENV[key.to_s] = value
end if File.exists?(env_file)
end
输出(RailsConsole):
>> ENV['MAIL_USERNAME']
nil
>> ENV['MAIL_DOMAIN']
nil
有人可以帮我解决吗?
答案 0 :(得分:3)
您正在尝试使用config
从File.join(Rails.root, 'config', 'local_env.yml')
文件夹加载文件,但您已将该文件保存在应用的根目录中。
只有文件存在时才会执行YAML.load
块。因为它无法找到config/local_env.yml
,所以它不会加载任何内容。
您应该将local_env.yml
移至config
文件夹。如果您希望将文件保留在应用的根目录中,请将该行更改为:
env_file = File.join(Rails.root, 'local_env.yml')