Ruby Unicorn w/Sinatra错误机架::Lint::Lint错误:状态必须为>=100被视为整数

Ruby Unicorn w/Sinatra错误机架::Lint::Lint错误:状态必须为>=100被视为整数,ruby,sinatra,unicorn,Ruby,Sinatra,Unicorn,我正在用sinatra创建一个简单的应用程序,并用unicorn部署它 在本地使用ruby webserver.rb时,它工作得很好,但在生产服务器上,使用unicorn(不带-D)执行时,调用特定的post路由时会出错: post '/save-preset' do preset = Preset.create_new params['preset_name'], params['data'] session[:flash] = 'Preset Saved' {id: preset

我正在用sinatra创建一个简单的应用程序,并用unicorn部署它

在本地使用ruby webserver.rb时,它工作得很好,但在生产服务器上,使用unicorn(不带-D)执行时,调用特定的post路由时会出错:

post '/save-preset' do
  preset = Preset.create_new params['preset_name'], params['data']
  session[:flash] = 'Preset Saved'
  {id: preset.id}.to_json
end
错误是:

Rack::Lint::LintError: Status must be >=100 seen as integer
    /usr/local/rvm/gems/ruby-2.2-head/gems/rack-1.5.5/lib/rack/lint.rb:20:in `assert'
我知道操作的逻辑正在执行,因为我在数据库中以一个新条目结束

这在本地应用也很好


我在互联网上搜索过这个错误,但只发现它与其他ruby Web服务器有关,在我看来,响应的http状态似乎无效,但我没有指定它,对于其他路由(甚至是其他
POST
),它工作得很好。

尝试一下这个针对Lint的攻击:

module Rack
  class Lint
    def assert message, &block
    end
  end
end

它帮助我处理了瘦中的异步请求

尝试一下以下针对Lint的技巧:

module Rack
  class Lint
    def assert message, &block
    end
  end
end

它在精简版中帮助我处理异步请求

解决此问题的一种方法是在路由上添加
status 200
,但我不明白为什么?其他路线没有这个功能。在本地,如果没有独角兽,它也可以工作。解决这个问题的一个方法是在路线上添加
status 200
,但我不明白为什么?其他路线没有这个功能。在当地,没有独角兽,它也能工作。