7 Stimmen

Wie gehe ich beim Auffinden von DEPRECATION WARNING im Zusammenhang mit Bundler vor

Ich bin ziemlich neu in Rails. Ich sehe immer wieder diese Veraltungs-Warnungen, wenn ich meine App starte:

VERALTUNGSWARNUNG: ref ist veraltet und wird aus Rails 3.2 entfernt.
(aufgerufen von  in D:/dev/AquaticKodiak/config/application.rb:12)
VERALTUNGSWARNUNG: new ist veraltet und wird aus Rails 3.2 entfernt.
(aufgerufen von  in D:/dev/AquaticKodiak/config/application.rb:12)

OK, was steht in Zeile 12? Dies:

Bundler.require(:default, :assets, Rails.env)

Hmm, das grenzt es nicht wirklich ein. Das sagt mir, dass eines der Gems, das mit meiner App zusammenhängt, ein Stichwort verwendet, das bald verschwinden wird. Ich würde wirklich gerne herausfinden, welches es ist. Alle Gems in meiner Gemfile verwenden die >= [Version]-Syntax, außer denen, die von github kommen. Ich vermute, dass die Github-Sachen dafür verantwortlich sind, aber wie finde ich heraus, um welches Projekt es sich handelt? Code herunterladen und nach dem Stichwort suchen, sieht nach Arbeit aus - gibt es einen einfacheren Weg?

4voto

chuckdbacon Punkte 161

Die Rails-Veraltungs-Warnung ist hier ziemlich unhilfreich. Sie enthält einen vollständigen Aufruflistenpfad, der Ihnen helfen könnte, das veraltete Gem zu finden, filtert jedoch das Ergebnis, um den ersten nicht-Framework-Punkt in der Aufrufliste zurückzugeben, in diesem Fall application.rb.

Um das verursachende Gem zu finden, würde ich mir die vollständige Aufrufliste bei ActiveSupport::Deprecation.warn schnappen, die in Zeile 10 von activesupport/lib/active_support/deprecation/reporting.rb definiert ist.

Wenn Sie Pry installiert haben (empfohlen), fügen Sie dann eine bedingte Bindung in Zeile 11 von reporting.rb hinzu:

binding.pry if message =~ /ref is deprecated/

Dann inspizieren Sie caller.

Wenn Sie eine Gemfile posten, kann ich für Sie nachsehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X