我已经在生产中使用Rails应用程序了。在设置这些环境变量之前的那个人:
...
export RACK_ENV=none
export RAILS_ENV=production
...
RACK_ENV=none
做什么?我无法在任何地方找到相关文档。我是否需要在Rails应用程序中设置它,还是可以删除该导出?
答案 0 :(得分:4)
要查找当前环境,Rails应用程序首先查找RAILS_ENV
环境变量,然后查找RACK_ENV
环境变量,然后默认为'development'
。
答案 1 :(得分:1)
如果您正在使用版本1.7或更高版本的database_cleaner gem,并且您的CI服务器RACK_ENV
设置为production
,就像我的那样,您需要将RACK_ENV
设置为none
(或除production
之外的任何其他内容)以安抚database_cleaner保护您的测试未在生产中运行的安全措施。 (或者你可以完全禁用安全措施,但这似乎不太安全。)
查看当前的机架来源,似乎RACK_ENV对于机架有意义的唯一值是development
,这会导致机架将主机默认为localhost
而不是0.0.0.0
。因此,首先将RACK_ENV设置为production
是愚蠢的,或者检查它是否设置为那个,但是这种愚蠢已经扎根了。