Je cherche un moyen de vider la structure d'un objet, similaire aux fonctions PHP print_r
et var_dump
pour des raisons de débogage.
ruby-on-rails
ruby
Daniel Rikowski
la source
la source
puts theobject.inspect.gsub(",", "\n")
En vues:
Dans les contrôleurs, modèles et autre code:
La source
la source
Dans une vue que vous pouvez utiliser,
<%= debug(yourobject) %>
elle générera une vue YAML de vos données. Si vous voulez quelque chose dans votre journal, vous devez utiliserlogger.debug yourobject.inspect
.la source
Vous pouvez également utiliser le raccourci YAML :: dump ( y ) sous la console Rails:
Si vous souhaitez simplement prévisualiser le contenu d'une chaîne, essayez d'utiliser rise (par exemple dans les modèles, les contrôleurs ou tout autre endroit inaccessible). Vous obtenez le backtrace gratuitement :)
Je vous encourage également vraiment à essayer ruby-debug :
C'est incroyablement utile!
la source
Vous pouvez utiliser
puts some_variable.inspect
. Ou la version plus courte:p some_variable
. Et pour une sortie plus jolie, vous pouvez utiliser la gemme awesome_print .la source
Si vous voulez simplement que les données pertinentes soient affichées sur stdout (la sortie du terminal si vous exécutez à partir de la ligne de commande), vous pouvez utiliser
p some_object
.la source
Les réponses précédentes sont excellentes mais si vous ne voulez pas utiliser la console (terminal), dans Rails, vous pouvez imprimer le résultat dans la vue en utilisant Helper ActionView :: Helpers :: DebugHelper du débogage
résultats (dans le navigateur)
la source
J'utilise ça :)
la source
Dernièrement , je suis en utilisant awesome_print de
ap
méthode qui fonctionne sur la console ainsi que dans les vues.La sortie colorée spécifique au type fait vraiment une différence si vous avez besoin de rechercher visuellement des objets
String
ouNumeric
(même si j'ai dû modifier un peu ma feuille de style pour obtenir un aspect soigné)la source
Récemment, je suis devenu un fan de PRY , je l'ai trouvé incroyablement pour faire des choses comme l'inspection des variables, le débogage du code en cours d'exécution et l'inspection du code externe. Cela pourrait être un peu exagéré en tant que réponse à cette question spécifique.
la source