Расширение авторизации Sinatra: NameError - PullRequest
0 голосов
/ 22 июня 2011

Может кто-нибудь сказать мне, почему я получаю NameError - uninitialized constant Sinatra::Default при вызове маршрута /admin?

require "sinatra"
require "sinatra/authorization"

set :authorization_realm, "Protected zone"

helpers do
  def authorize(login, password)
    login == "admin" && password == "secret"
  end
end

get "/" do
  "Welcome to the public zone"
end

get "/admin" do
  login_required
  "Welcome to the protected zone"
end

Я использую Ruby 1.9.2, Sinatra 1.2.6 и Расширение авторизации Sinatra .

ОБНОВЛЕНИЕ : ОК, я нашел источник проблемы в строке 25 следующего файла:

Синатра-авторизации-1.0.0 / Библиотека / Синатра / authorization.rb

Этот форк исходного проекта решил проблему, заменив Sinatra::Default.authorization_realm на settings.authorization_realm в строке 25. Это решает проблему, но я не понимаю, почему. Кто-нибудь может мне это объяснить?

1 Ответ

2 голосов
/ 22 июня 2011

Это решает проблему, потому что у Синатры больше нет класса Default.И если вы хотите получить доступ к некоторым настройкам, определенным с помощью :set, вы должны использовать settings. для этого.

...