环境变量不加载Rails

时间:2016-01-19 21:38:25

标签: ruby-on-rails postgresql

您好我遇到了使环境变量正常工作的问题。我将它们导出到服务器上:

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"]

当我放入原始字符串时,它可以很好地工作。任何帮助都是极好的。

1 个答案:

答案 0 :(得分:4)

Yaml本身对环境变量一无所知,但是rails在解析yaml之前通过erb运行文件,以及你可以在其中执行诸如加载环境变量之类的事情。

您需要使用erb标记(&lt;%=%&gt;),否则rails会使用文字ENV [&#39;密码&#39;]作为密码,例如:

password: <%= ENV['password'] %>
相关问题