Получение ошибки стойки Rack::Lint::LintError: Статус должен быть>=100 и рассматриваться как целое число

Я пытаюсь создать мое приложение ruby ​​на основе стойки, и я все еще новичок здесь, я использую ruby ​​1.9.2 -p180

в моем файле config.ru у меня есть:

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

use Auth
run MyApp.new

Теперь основная проблема с Middleware Auth, просто я хочу, чтобы он не продолжал MyApp, если для запроса было меньше 2 параметров, и просто распечатывал что-то (только для тестирования):

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 ответ

Решение

Попробуйте использовать целое число для статуса:

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

Вместо:

["200",{"Content-Type" => "text/plain"}, ["Hello World"]]
Другие вопросы по тегам