获取机架错误Rack :: Lint :: LintError:状态必须为> = 100,视为整数

时间:2012-09-05 16:41:13

标签: ruby-on-rails ruby rack middleware rack-middleware

我正在尝试构建基于机架的ruby应用程序,我还是新手,我正在使用ruby 1.9.2 -p180

在我的config.ru文件中我有:

require "rack"
require "./my_app.rb"
require "./auth.rb"

use Auth
run MyApp.new

现在是Middleware Auth的主要问题,简单地说,如果请求少于2个参数并且打印出一些东西(仅用于测试),我希望它不继续MyApp:

class Auth

  def initialize(app)
    @app = app
  end

  def call(env)     
    request = Rack::Request.new(env)
    if request.params.count < 2
        ["200",{"Content-Type" => "text/plain"}, ["Hello World"]]
        puts 'Working .. '
    else 
        @app.call(env)
    end
  end
end 

现在我运行我的机架应用程序时:

rackup -s thin config.ru

尝试获得结果:

curl http://localhost:9292/

我一直收到以下错误:

Rack::Lint::LintError: Status must be >=100 seen as integer
/Users/Apple/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.4.1/lib/rack/lint.rb:19:in `assert'
/Users/Apple/.rvm/gems/ruby-1.9.2-p180/gems/rack-1.4.1/lib/rack/lint.rb:425:in `check_status'

当然,如果我以生产模式运行它,我将不会收到此错误。

这里有任何帮助。

1 个答案:

答案 0 :(得分:2)

尝试使用整数作为状态:

[200,{"Content-Type" => "text/plain"}, ["Hello World"]]

而不是:

["200",{"Content-Type" => "text/plain"}, ["Hello World"]]