我正在用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
)也很好用。
答案 0 :(得分:0)
试试Lint的这个黑客:
module Rack
class Lint
def assert message, &block
end
end
end
它帮助我在瘦
中处理异步请求