Ich suche nach einer Möglichkeit, die Struktur eines Objekts ähnlich wie bei den PHP-Funktionen print_r
und var_dump
aus Debugging-Gründen zu sichern.
ruby-on-rails
ruby
Daniel Rikowski
quelle
quelle
puts theobject.inspect.gsub(",", "\n")
In Ansichten:
In Steuerungen, Modellen und anderem Code:
Quelle
quelle
In einer Ansicht, die Sie verwenden können
<%= debug(yourobject) %>
, wird eine YAML-Ansicht Ihrer Daten generiert. Wenn Sie etwas in Ihrem Protokoll haben möchten, sollten Sie verwendenlogger.debug yourobject.inspect
.quelle
Sie können auch YAML :: dump shorthand ( y ) unter der Rails-Konsole verwenden:
Wenn Sie wollen einfach nur ein paar String Inhalt der Vorschau anzeigen , versuchen Sie es mit raise (zum Beispiel bei den Modellen, Controller oder einem anderen unzugänglichen Ort). Sie erhalten die Rückverfolgung kostenlos :)
Ich ermutige Sie auch wirklich, Ruby-Debug zu versuchen :
Es ist unglaublich hilfreich!
quelle
Sie können verwenden
puts some_variable.inspect
. Oder die kürzere Version :p some_variable
. Und für eine schönere Ausgabe können Sie das Juwel awesome_print verwenden .quelle
Wenn Sie nur möchten, dass die relevanten Daten in stdout angezeigt werden (die Terminalausgabe, wenn Sie über die Befehlszeile ausgeführt werden), können Sie verwenden
p some_object
.quelle
Frühere Antworten sind großartig, aber wenn Sie die Konsole (das Terminal) nicht verwenden möchten, können Sie in Rails das Ergebnis in der Ansicht mit dem Helper ActionView :: Helpers :: DebugHelper des Debugs drucken
Ergebnisse (im Browser)
quelle
Ich benutze das :)
quelle
In letzter Zeit verwende ich die Methode von awesome_print ,
ap
die sowohl auf der Konsole als auch in Ansichten funktioniert.Die typspezifische farbige Ausgabe macht wirklich einen Unterschied , ob man für visuell scannen müssen
String
oderNumeric
Gegenstände (Obwohl ich hatte mein Sheet ein wenig , um zwicken ein poliertes Aussehen zu erhalten)quelle
Vor kurzem bin ich ein Fan von PRY geworden . Ich fand es unglaublich, Dinge wie das Überprüfen von Variablen, das Debuggen von laufendem Code und das Überprüfen von externem Code zu tun. Als Antwort auf diese spezielle Frage könnte es ein wenig übertrieben sein.
quelle