Ruby Sinatra配置为生产和开发

Tar*_*nko 5 ruby sinatra

我在Sinatra上创建了应用程序,它代表了一个简单的API.我想在生产和开发上进行部署.我想在部署期间选择,无论是开发还是生产,并且某些方法的逻辑应该根据部署类型进行更改.有什么想法,怎么做以及解决这个问题的一些例子.

示例:我有代码

get '/api/test' do
  return "It is dev"
end
Run Code Online (Sandbox Code Playgroud)

但是在部署到生产之后我想在运行/ api/test之后看到

It is PROD
Run Code Online (Sandbox Code Playgroud)

怎么做?

Ama*_*ros 5

根据Sinatra文档:

可以通过RACK_ENV环境变量设置环境.默认值为"development".在"开发"环境中,所有模板都在请求之间重新加载,特殊的not_found和错误处理程序在浏览器中显示堆栈跟踪.在"生产"和"测试"环境中,默认情况下会缓存模板.

要运行不同的环境,请设置RACK_ENV环境变量:

RACK_ENV =生产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
Run Code Online (Sandbox Code Playgroud)

如果settings.development?不起作用,你可以试试Sinatra::Application.environment == :development