2008-09-13 10 views

Antwort

11

Ja. Der einfachste Weg ist, den Wert als String zu erhöhen. Wie folgt: raise @foo.to_s

Oder Sie können den Debugger (gem install ruby-debug) installieren und starten Sie den Entwicklungsserver mit dem --debugger Flag. Rufen Sie dann in Ihrem Code die debugger Anweisung auf.

In der Debugger-Eingabeaufforderung haben Sie viele Befehle, einschließlich , um den Wert einer Variablen zu drucken.

Aktualisierung: hier ist a bit more about ruby-debug.

5

Wenn Sie eine Controller-Instanz Variable @foo genannt, dann in Ihrem Controller können Sie einfach so etwas wie:

logger.debug "@foo is: #{@foo}" 

Zusätzlich können Sie den Wert Ihrer Ansicht nach Vorlage Ausgabe mit:

<%= debug @foo %> 
5

ich lieber mit der Methode untersuchen, wie so:

raise @foo.inspect 

Es hat mehr Informationen als to_s, wie die Attributwerte.

3

Zusammenfassung von Jordi Bunster, John Topley und Jaryl:

I. Schnelle und schmutzige Art und Weise:

raise @foo.inspect 

in Ihrem Controller. Oder

<% raise @foo.inspect %> 

aus Ihrer Sicht.

II. Richtige Protokollierung für Sie development.log:

logger.debug "@foo == #{@foo.inspect}" 

III. Full-fledged debugging:

Installieren Sie den Debugger (gem install ruby-debug), und starten Sie dann den Entwicklungsserver mit dem Flag --debugger. Rufen Sie dann in Ihrem Code die debugger Anweisung auf.

In der Debugger-Eingabeaufforderung haben Sie viele Befehle, einschließlich , um den Wert einer Variablen zu drucken.

0

Eine Ausnahme auslösen ist der schnellste Weg, wenn Sie nur einen Wert betrachten müssen, aber es lohnt sich zu lernen, wie Sie den Debugger richtig einsetzen. Es ist selten, dass Sie nur den Wert einer Variablen sehen müssen, Sie versuchen wahrscheinlich, einen Fehler in Ihrem Code zu finden, und dafür ist ein Debugger gedacht.

Das Senden der Informationen an das Entwicklungsprotokoll ist hier langsamer als die beiden anderen hier, wenn Sie lernen, wie man den Debugger verwendet (wer Log-Dateien lesen will). Verwenden Sie den Logger für die Produktion, Sie wollen sehen, was der Wert war, wenn jemand Sie anruft und sagt, dass alles kaputt ist.

0

Nun, ich bevorzugen in der Regel die Standardfehlerausgabe

$ stderr.print ("was auch immer")

Seine einfache und macht die Arbeit.