Nicht definierte Methode failure_app for nil:NilClass
Ich versuche, mit entwickeln aus einer Rails-app für den Zugriff auf eine Sinatra Anwendung innerhalb der Rack-middleware.
Meine config/routes.rb hat:
authenticate "admin" do
mount Admins::Dashboard, :at => "/admins"
end
In meinem Sinatra-app, die ich benutze:
before do
env["warden"].authenticate!(:scope => "admin")
end
get "/dashboard" do
erb :dashboard
end
Nun bekomme ich ein Fehler mit der folgenden stacktrace:
Started GET "/admins/dashboard" for 127.0.0.1 at 2012-10-11 08:45:13 +0200
NoMethodError (undefined method `failure_app' for nil:NilClass):
devise (2.1.2) lib/devise/delegator.rb:11:in `failure_app'
devise (2.1.2) lib/devise/delegator.rb:5:in `call'
warden (1.2.1) lib/warden/manager.rb:130:in `call_failure_app'
warden (1.2.1) lib/warden/manager.rb:116:in `process_unauthenticated'
warden (1.2.1) lib/warden/manager.rb:47:in `call'
actionpack (3.2.8) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.4.1) lib/rack/etag.rb:23:in `call'
rack (1.4.1) lib/rack/conditionalget.rb:25:in `call'
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Fehlermeldung ist eine Beschwerde über eine fehlende Konfiguration zum anpassen der warden Ausfall app-zu-Punkt sinatra.
Check-out diese Vorherige Antwort und der Zusammenhang (ausführlichen) blogpost über die Einrichtung Sinatra+Warden & Schienen+Entwickeln; hoffentlich ist die Anleitung wird es Ihnen helfen, setzen die Lösung erfolgreich.
Hatte die gleiche Fehlermeldung und dieser Kommentar auf Github mir geholfen.
In meinem
sessions_controller.rb
ich hatte:welche ich ersetzt mit:
für Sie zu arbeiten.
Speziell, die Frage war nur passiert, nachdem eine Benutzer sein Konto löschen... Auch ich bin mit devise_token_auth (daher der überschrieben Sitzungen controller).