Sinatra如何知道使用哪种环境?

时间:2013-01-16 07:38:16

标签: ruby heroku sinatra

我将Sinatra应用程序上传到服务器(heroku)。但似乎应用程序本身就像在本地主机上一样,不像我的另一个Rails应用程序在那里运行良好。

那么如何检查我的Sinatra应用程序是否使用了正确的环境? Sinatra如何知道使用哪种环境?

2 个答案:

答案 0 :(得分:1)

本质上,heroku将负责设置环境。默认情况下,它是“生产”。如果您针对不同的用例使用不同的配置/行为,则必须先对其进行编码。

例如

if ENV=="production"
  # do something
elsif ENV=="staging"
  # do something else
end

我不确定您为什么要将环境明确设置为“生产”或其他内容。这应由托管环境自行决定。

<强>更新

有关Heroku documentation

的更多信息

进一步更新

 heroku run printenv
上面的

应列出环境变量。

答案 1 :(得分:0)

我将环境变量添加到我的所有heroku实例中:

heroku config:add APP_NAME=<myappname>

然后,对于Sinatra,我在config.ru中有以下内容:

# detect environments and setup some passwords
case ENV['APP_NAME'] 
  when 'prod-damon'
    # whatever for production
  when 'dev-damon'
    # whatever for development on Heroku
  else
    # whatever for local
end