In PHP, CGI oder RoR View können wir problemlos Debug-Informationen ausdrucken. Wie wäre es mit dem Controller, wie können wir nur sagen, print "hello world"
(auf der Webseite Ausgabe) und zurückkehren, um mit der Ansicht fortzufahren, oder stoppen Sie den Controller direkt dort?Wie können wir auf Ruby on Rails Debug-Informationen innerhalb eines Controllers drucken?
Antwort
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) %>
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?
oh, kann es auf der Webseite zeigen tatsächlich,? –
Sie können in der Ansicht debuggen: <%= debug @post %>
. Weitere Informationen: http://guides.rubyonrails.org/debugging_rails_applications.html
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.
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))
- 1. Drucken eines String-Arrays ohne Anführungszeichen in Ruby on Rails
- 2. Verwenden von Bereinigen innerhalb eines Rails-Controllers
- 3. Ruby on Rails - Variable innerhalb einer Variablen
- 4. mehrere verschachtelte Formulare innerhalb eines Ruby on Rails-Projekts
- 5. Ruby on rails Queing
- 6. Ruby on Rails auf IIS?
- 7. Curl on Ruby on Rails
- 8. Ruby on Rails Reporting-Tools?
- 9. Ruby-on-Rails Authentifizierungsanleitung
- 10. LocalJumpError (Ruby on Rails)
- 11. Optimieren eines Ruby on Rails-Projekts
- 12. Ruby on rails Pfadhelfer
- 13. Wie funktioniert Ruby on Rails?
- 14. Wie können wir d3.js in einem Ruby on Rails-Dokument verwenden?
- 15. Ruby on Rails-Modell innerhalb Namespace kann nicht
- 16. Ruby on Rails Beziehungen
- 17. Ruby on Rails sortierbare Liste
- 18. Können wir Dialog innerhalb eines Dialogs öffnen?
- 19. Ruby on Rails -. Verband Ausgabe :(
- 20. Ruby on Rails: Wie können wir die in der Datenbank gespeicherte ActiveRecord-Abfrage ausführen?
- 21. Ruby on Rails bietet
- 22. Feldprüfung Ruby on Rails
- 23. Ruby on Rails - So drucken Sie Protokollnachrichten in Farbe
- 24. Ruby on Rails Cache
- 25. Ruby on Rails Feld Durchschnitt?
- 26. Ruby On Rails Grundvariable
- 27. Ruby on rails Verbindungsproblem
- 28. Ruby on Rails Entschlüsselung
- 29. ruby-on-rails: gravatar_for
- 30. Ruby on Rails Fehler
Das ist gut [hier dokumentiert] (http://guides.rubyonrails.org/debugging_rails_applications.html#the-logger). –
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
debug() versucht, to_yaml() für das Objekt aufzurufen. Wenn dies nicht möglich ist, wird inspect() aufgerufen. – Papipo