Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Sinatra配置用于生产和开发_Ruby_Sinatra - Fatal编程技术网

Ruby Sinatra配置用于生产和开发

Ruby Sinatra配置用于生产和开发,ruby,sinatra,Ruby,Sinatra,我在Sinatra上创建了这个应用程序,它代表了一个简单的API。我想对生产和开发进行部署。我想在部署期间选择是开发还是生产,并且一些方法的逻辑应该根据部署类型而改变。 是否有任何想法,如何做到这一点,以及解决这个问题的一些例子 例如: 我有密码 get '/api/test' do return "It is dev" end 但在部署到生产环境之后,我希望看到run/api/test It is PROD 怎么做?试试这个 get '/api/test' do if settin

我在Sinatra上创建了这个应用程序,它代表了一个简单的API。我想对生产和开发进行部署。我想在部署期间选择是开发还是生产,并且一些方法的逻辑应该根据部署类型而改变。 是否有任何想法,如何做到这一点,以及解决这个问题的一些例子

例如: 我有密码

get '/api/test' do
  return "It is dev"
end
但在部署到生产环境之后,我希望看到run/api/test

It is PROD
怎么做?

试试这个

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

根据:

可以通过RACK_ENV环境变量设置环境。这个 默认值为“开发”。在"发展"环境下, 在请求之间重新加载模板,并且找不到特殊的 错误处理程序在浏览器中显示堆栈跟踪。在 在“生产”和“测试”环境中,默认情况下会缓存模板

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

RACK_ENV=生产ruby my_app.rb

您还可以使用
开发?
生产?
方法更改逻辑:

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

可能重复@AmauryMedeiros我更新了我的问题,我不知道如何使用它。请解释一下。指定的副本很没用,也不完全是副本。我认为
ruby myapp.rb-E制作版