2013-06-29 50 views
0

我正在Raman 3.2中使用带有Foreman的RVM。我的应用程序根目录中有一个.env文件,该文件应该与Foreman一起加载。但显然,当我在database.yml中使用ENV['DATABASE_NAME']时,它无法加载导轨。但奇怪的是,在使用硬编码数据库名称加载rails之后,我可以打开控制台并访问ENV['DATABASE_NAME']。而且工头真的不能在Procfile中访问ENV。我有另一个轨道4应用程序,可以访问devise.rb中的ENV,这是初始化程序之一,但是当我将相同的ENV['DATABASE_NAME']放入database.yml时,它将启动服务器,但在应用程序启动时无法打开页面试图访问数据库。所以它看起来像ENV只加载轨道后,轨道本身加载。你如何允许它也可以通过Procfiledatabase.yml访问。工头在加载导轨时不能使用环境变量

回答

1

如果您显示了您的个人资料和.env的示例,那么对于某人来说,帮助会更容易。

从你的问题中我疯狂的猜测是你在Procfile中错误地使用了env变量。

举例来说,如果在.ENV你有 PORT = 3000

然后在您的个人资料,它被称为为$ PORT - 不是ENV [ '端口']

在ruby文件如你会使用一个配置初始化程序ENV ['FOO']

+1

你的猜测是对的先生!我在Procfile中使用它是错误的。并遵循你的想法,我也在database.yml文件中使用了它,现在我在database.yml中使用了'<%ENV ['DATABASE_NAME']%>',它工作正常!谢谢。 – randomor

+0

乐意提供帮助,我在这里也得到了很多帮助。 – jpwynn