我在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署期间选择,无论是开发还是生产,并且某些方法的逻辑应该根据部署类型进行更改。 有什么想法,怎么做以及解决这个问题的一些例子。
实施例: 我有代码
get '/api/test' do
return "It is dev"
end
但是在部署到生产之后我想在运行/ api / test
之后看到It is PROD
怎么做?
答案 0 :(得分:5)
可以通过RACK_ENV环境变量设置环境。该 默认值是“开发”。所有在“发展”环境中 模板在请求之间重新加载,特殊的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
如果settings.development?
不起作用,您可以尝试Sinatra::Application.environment == :development
答案 1 :(得分:3)
试试这个
get '/api/test' do
if settings.development?
return "It is dev"
else
return "Not dev"
end
end