Ruby Sinatra配置用于生产和开发环境

5
我已经使用Sinatra创建了一个简单API的应用程序。我想在生产和开发环境中进行部署。我希望在部署过程中可以选择是开发还是生产环境,并且一些方法的逻辑应该根据部署类型进行更改。 有没有什么好的想法,如何解决这个问题并提供一些示例呢?
例如: 我有一段代码
get '/api/test' do
  return "It is dev"
end

但是在部署到生产环境后,我希望能够查看运行/api/test之后的结果。

It is PROD

如何实现?


@AmauryMedeiros 我更新了我的问题,我不明白如何工作,请解释一下。 - Taras Kovalenko
被提名的重复项相当无用,而且并不完全是一个重复项。 - Wayne Conrad
2个回答

5
根据Sinatra文档:
环境可以通过RACK_ENV环境变量进行设置。默认值为"development"。在"development"环境中,所有模板都会在请求之间重新加载,并且特殊的not_found和error处理程序会在浏览器中显示堆栈跟踪。在"production"和"test"环境中,默认情况下缓存模板。
要运行不同的环境,请设置RACK_ENV环境变量:
RACK_ENV = production ruby my_app.rb
您还可以使用development?production?方法来更改逻辑:
get '/api/test' do
  if settings.development?
    return "It is dev"
  else if settings.production?
    return "It is PROD"
  end
end

如果 settings.development? 无法正常工作,您可以尝试 Sinatra::Application.environment == :development

3

试试这个

get '/api/test' do
  if settings.development?
    return "It is dev"
  else
    return "Not dev"
  end
end

官方指南 -> 环境


(该内容为链接,无法翻译)

我认为应该这样写:ruby myapp.rb -E production或者可以参考这个链接 - Renaud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接