Wenn ich smthing testen oder debuggen möchte, starte ich Rails console
Und mache dort ein paar Sachen. Ich kann Text oder Variablen aus Code drucken, indem ich eine Ausnahme mit raise "blablabla"
Auslöse. Frage: Wie kann ich einfach an Rails-Konsole schreiben , ohne Ausnahme die Ausführung von Code zu erhöhen (und offensichtlich zu brechen) wie ein einfaches logger.info "blah"
?
Wie bereits erwähnt, möchten Sie entweder puts
oder p
verwenden. Warum? Ist das Magie?
Eigentlich nicht. Eine Rails Konsole ist unter der Haube ein IRB , damit Sie in IRB alles tun können, was Sie können do in a Rails console. Da wir zum Drucken in einem IRB puts
verwenden, verwenden wir denselben Befehl zum Drucken in einer Rails console .
Sie können tatsächlich einen Blick auf die Konsole werfen Code im Rails Quellcode. Siehe die Anforderung von irb? :)
puts
oder p
ist ein guter Anfang dafür.
p "asd" # => "asd"
puts "asd" # => asd
weitere Informationen hierzu finden Sie hier: http://www.Ruby-doc.org/core-1.9.3/ARGF.html
Zusätzlich zu den bereits vorgeschlagenen p
und puts
- nun, in den meisten Fällen können Sie logger.info "blah"
Genau so schreiben, wie Sie es selbst vorgeschlagen haben. Es funktioniert auch in der Konsole, nicht nur im Servermodus.
Wenn Sie jedoch nur das Debuggen der Konsole wünschen, sind puts
und p
ohnehin viel kürzer zu schreiben.
Ich denke, Sie sollten die Rails Debug-Optionen verwenden:
logger.debug "Person attributes hash: #{@person.attributes.inspect}"
logger.info "Processing the request..."
logger.fatal "Terminating application, raised unrecoverable error!!!"
https://guides.rubyonrails.org/debugging_Rails_applications.html