0
有誰能告訴我爲什麼我在撥打/admin
路線時得到NameError - uninitialized constant Sinatra::Default
?Sinatra授權分機:NameError
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,1.2.6西納特拉和Sinatra Authorization Extension。
UPDATE:OK,我已經找到了問題的根源在以下文件的第25行:
sinatra-authorization-1.0.0/lib/sinatra/authorization.rb
原始項目的This fork通過與settings.authorization_realm
更換Sinatra::Default.authorization_realm
解決的問題第25行。這解決了這個問題,但我不明白爲什麼。任何人都可以向我解釋?
它解決了問題,因爲Sinatra不再有'Default'類。如果你想訪問一些使用':set'定義的設置,你應該使用'settings.' –
謝謝!把這個評論作爲答案,我會將其標記爲解決方案。 – Javier