Unicorn w / Sinatra错误Rack :: Lint :: LintError:状态必须是> = 100看作整数

时间:2015-08-15 12:28:26

标签: ruby sinatra unicorn

我正在用sinatra创建一个简单的应用程序,我正在用独角兽进行部署。

在本地使用ruby webserver.rb它可以很好地工作,但在生产服务器上,当使用独角兽(没有-D)执行时,它会在调用特定的邮政路线时引发错误:

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网络服务器有关,在我看来,响应的http状态无效,但我没有指定它,因为其他路线(甚至其他POST)也很好用。

1 个答案:

答案 0 :(得分:0)

试试Lint的这个黑客:

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

它帮助我在瘦

中处理异步请求