undefinierte Methode 'desc' für Sinatra :: Anwendung: Klasse

8

Dies ist der Fehler, den ich erhalte, wenn ich einen rake -Befehl ausführen: undefined method 'desc' for Sinatra::Application:Class

%Vor%

Vollständige Ablaufverfolgung:

%Vor%     
jamesfzhang 17.12.2013, 15:30
quelle

2 Antworten

10

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

%Vor%

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.

    
matt 17.12.2013, 19:09
quelle
14

Gefunden eine einfachste Lösung:

Juste fügt das Attribut require: false zu sinatra contrib in deiner gemfile hinzu:

%Vor%

Gefunden hier:

Ссылка

    
tomsoft 14.05.2014 09:34
quelle

Tags und Links