我正在尝试构建基于机架的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'
当然,如果我以生产模式运行它,我将不会收到此错误。
这里有任何帮助。
答案 0 :(得分:2)
尝试使用整数作为状态:
[200,{"Content-Type" => "text/plain"}, ["Hello World"]]
而不是:
["200",{"Content-Type" => "text/plain"}, ["Hello World"]]