Ruby Sinatra配置为生产和开发

时间:2015-04-28 16:24:29

标签: ruby sinatra

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

实施例: 我有代码

get '/api/test' do
  return "It is dev"
end

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

之后看到
It is PROD

怎么做?

2 个答案:

答案 0 :(得分:5)

根据Sinatra Documentation

  

可以通过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

Official guide -> environments