web-dev-qa-db-fra.com

Écrivez à Rails console

Quand je veux essayer ou déboguer smthing, je lance Rails console Et je fais quelques choses là-bas. Je peux imprimer du texte ou des variables à partir de code en levant une exception avec raise "blablabla". Question: Comment puis-je simplement écrire sur la console de Rails sans exception (et l'exécution de code de rupture évidente) comme un simple logger.info "blah"?

52
freemanoid

Comme d'autres l'ont déjà dit, vous voulez utiliser soit puts ou p. Pourquoi? Est-ce que c'est magique?

Pas vraiment. Une console Rails est, sous le capot, un IRB , de sorte que tout ce que vous pouvez faire dans IRB vous sera possible. faire dans une console Rails. Étant donné que pour imprimer dans une IRB, nous utilisons puts, nous utilisons la même commande pour imprimer dans une Rails .

Vous pouvez réellement jeter un coup d’œil à la console code dans le code source Rails. Voir les exigences de irb? :)

77
Nobita

puts ou p est un bon début pour le faire.

p "asd"       # => "asd"
puts "asd"    # => asd

voici plus d'informations à ce sujet: http://www.Ruby-doc.org/core-1.9.3/ARGF.html

36
SeriousM

En plus des suggestions déjà suggérées p et puts - eh bien, dans la plupart des cas, vous pouvez écrire logger.info "blah" comme vous l’avez suggéré. Cela fonctionne aussi en console, pas seulement en mode serveur.

Mais si tout ce que vous voulez, c'est le débogage de la console, puts et p sont beaucoup plus courts à écrire, de toute façon.

8
NIA

Je pense que vous devriez utiliser les Rails:

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