wake-up-neo.com

Schreiben Sie an Rails console

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"?

52
freemanoid

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? :)

77
Nobita

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

36
SeriousM

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.

8
NIA

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

1
matiasmasca