2012-04-05 9 views
1

Wie kann ich diese Nachricht besser debuggen? Die Spur zeigt 3 Zeilen von einem meiner Dateien - application.rb:Rake abgebrochen! Kann Hash nicht in String konvertiert werden?

18 module CustomApp 
19 class Application < Rails::Application 
... 
49 # Enable the asset pipeline 

Gibt es eine Möglichkeit, genau herauszufinden, welche Datei diesen Fehler zu werfen?

Die letzte Spur:

/home/user/.rvm/gems/ruby-1.9.3-p0/gems/figaro-0.2.0/lib/figaro/railtie.rb:8:in `update' 

Ich fühle mich wie ein Ziegelstein wall..for diesem Grund getroffen habe, obwohl ich bin gespannt, um diesen Fehler zu beheben, ich bin mehr Angst um herauszufinden, wie um diese Nachrichten besser zu debuggen? Sicherlich könnte etwas wie "Kann Hash nicht in String in somefile.rb konvertieren: 112" leicht gehandhabt werden?

+0

Das ist nicht die neueste Version dieses Juwel, vielleicht versuchen, es zu aktualisieren? –

+0

Nur mit Bündler aktualisiert - "Installation Figaro (0.2.0)". Derselbe Fehler. Originalfrage mit neuer Trace aktualisiert. –

+0

Es sieht so aus, als könnte es Probleme mit Ihrer 'config/application.yml' Datei geben. Hast du das geändert oder ist es nicht richtig formatiert? (Ich mache diese Schätzung basierend auf dem Lesen der Codezeile, die in Ihrer 'letzten Spur' gemeldet wurde. –

Antwort

1

über ruby-debug zu lernen: http://bashdb.sourceforge.net/ruby-debug.html

über lernen Rails Debuggen: http://guides.rubyonrails.org/debugging_rails_applications.html

Der Fehler aus dieser Datei kommt:

lib/figaro/railtie.rb line 8 

Der Codeblock in dieser Datei:

path = Rails.root.join("config/application.yml") 
ENV.update(YAML.load(File.read(path)) || {}) if File.exist?(path) 

Ein Weg zu Ärger schießen ist Rubin-debug zu verwenden:

gem install ruby-debug 

Und diese Datei bearbeiten, um es besser Fehler zeigen zu machen:

path = Rails.root.join("config/application.yml") 
if File.exist?(path) 
    debugger 
    f = File.read(path) 
    y = YAML.load(f) 
    ENV.update(y || {}) 
end 
+0

Für Ruby 2.0, siehe auch den byebug gem, der neu und schnell ist. – joelparkerhenderson

Verwandte Themen