2010-07-27 3 views

Antwort

82

In der Steuerung können Sie:

render :text => @some_object.inspect 

Aber Ihre Ansicht wird nicht wiedergegeben werden.

Sie könnten auch:

Rails.logger.debug("My object: #{@some_object.inspect}") 

und laufen Schwanz auf log/development.log die Ausgabe zu sehen.

Nach Ansicht der Recommeneded Weg ist:

<%= debug(@some_object) %> 
+1

Das ist gut [hier dokumentiert] (http://guides.rubyonrails.org/debugging_rails_applications.html#the-logger). –

+0

Ich habe <% = debug (@some_object)%> für mein Instanzobjekt in Sicht gestellt. Aber es wird gedruckt, wie es ist, ohne mir den Wert des Objekts zu zeigen. – hatellla

+0

debug() versucht, to_yaml() für das Objekt aufzurufen. Wenn dies nicht möglich ist, wird inspect() aufgerufen. – Papipo

5

Weiß nicht über print, aber puts hat mich nie im Stich gelassen. Ihre hello world wird in der Konsole und in den Protokollen sein und der normale Fluss wird fortgesetzt.
Habe ich dich richtig verstanden?

+1

oh, kann es auf der Webseite zeigen tatsächlich,? –

1

Eigentlich Nikita Vorschlag ist nicht schlecht. In der Regel ist es jedoch schwierig, die Daten im Terminal zu betrachten, da die Größe des Bildschirmpuffers begrenzt sein kann und voll von vorherigen Daten aus dem vorherigen Seitenrendering ist.

Aber, sagen auf dem Mac, nur sicherstellen, dass der Bildschirm-Puffer groß genug ist, und auch in dem rails server Terminal verwenden, um die Schlüssel Befehlk die ganzen Bildschirm Puffer zuerst, zu löschen und den Browser zu holen eine Webseite, und jetzt Commandf zu suchen, die Zeichenfolge, die Sie ausgedruckt, und es funktioniert auch ganz gut. Wenn Befehlk zuerst verwendet wird, um den gesamten Bildschirmpuffer zu löschen, sollte der Ausdruck immer in den Bildschirmpuffer passen.

2

können Sie verwenden Abbruch mit inspizieren

abort params[:whatevs].inspect 

oder

abort @my_variable.inspect 

für JSON Format

render json: JSON.pretty_generate(JSON.parse(@my_variable.to_json))