0

ラックベースのrubyアプリを作成しようとしていますが、ここではまだ新しいので、ruby1.9.2-p180を使用しています。

私のconfig.ruファイルには次のものがあります。

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

use Auth
run MyApp.new

ミドルウェア認証の主な問題は、単純に、リクエストのパラメータが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'

もちろん、本番モードで実行した場合、このエラーは発生しません。

どんな助けでもここでいただければ幸いです。

4

1 に答える 1

2

ステータスに整数を使用してみてください。

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

それ以外の:

["200",{"Content-Type" => "text/plain"}, ["Hello World"]]
于 2012-09-05T17:26:59.640 に答える