您好我遇到了使环境变量正常工作的问题。我将它们导出到服务器上:
Export username=name password=password
当我做Irb和变量的类型时,我得到了它:
2.2.1 :001 > ENV["password"]
=> "password"
但是我在postgresql中遇到了这个错误:
PG::ConnectionBad: FATAL: password authentication failed for user "ENV["username"]"
我的环境变量似乎没有加载到系统中。这是我的database.yml文件:
production:
<<: *default
database: postgresql
username: ENV["username"]
password: ENV["password"]
当我放入原始字符串时,它可以很好地工作。任何帮助都是极好的。
答案 0 :(得分:4)
Yaml本身对环境变量一无所知,但是rails在解析yaml之前通过erb运行文件,以及你可以在其中执行诸如加载环境变量之类的事情。
您需要使用erb标记(&lt;%=%&gt;),否则rails会使用文字ENV [&#39;密码&#39;]作为密码,例如:
password: <%= ENV['password'] %>