Dies ist der Fehler, den ich erhalte, wenn ich einen rake
-Befehl ausführen: undefined method 'desc' for Sinatra::Application:Class
Vollständige Ablaufverfolgung:
%Vor% Die Sinatra-Namespace-Erweiterung von Sinatra contrib stört die Rake-eigene Namespace-Unterstützung. Beide definieren eine namespace
-Methode, und die Sinatra-contrib-Version wird (falsch) von der Sinatra-ActiveRecord Rake-Aufgaben .
Wenn Sie nicht die Namespaces von Sinatra-contrib verwenden, wäre die einfachste Lösung benötigen nur die Erweiterungen, die Sie benötigen ; z.B. ändern
%Vor%bis
%Vor% Wenn Sie Sinatra-Namespaces verwenden, denke ich, dass Sie das möglicherweise umgehen können, indem Sie zu modulare Stil App . Ändere dein app.rb
in etwas wie
Dann brauchst du in deinem config.ru
run MyApp
anstatt run Sinatra::Application
(natürlich kannst du - und solltest - deiner Klasse einen besseren Namen geben). Dies vermeidet die Kollision der beiden namespace
-Methoden, da die Sinatra-Version nur in Ihrer Anwendungsklasse und nicht in der obersten Ebene verfügbar ist.