2008-09-13 10 views

Répondre

11

Oui. Le moyen le plus simple consiste à augmenter la valeur en tant que chaîne. Vous pouvez également installer le débogueur (gem install ruby-debug), puis démarrez le serveur de développement avec l'indicateur --debugger. Ensuite, dans votre code, appelez l'instruction debugger.

À l'intérieur de l'invite du débogueur, vous avez plusieurs commandes, y compris p pour imprimer la valeur d'une variable.

Mise à jour: Voici a bit more about ruby-debug.

5

Si vous avez une variable d'instance de contrôleur nommé @foo, puis dans votre contrôleur, vous pouvez simplement faire quelque chose comme:

logger.debug "@foo is: #{@foo}" 

De plus, vous pouvez générer la valeur dans votre modèle de vue à l'aide:

<%= debug @foo %> 
5

Je préfère utiliser la méthode inspectent comme ceci:

raise @foo.inspect 

Il contient plus d'informations que to_s, comme les valeurs d'attribut.

3

Résumé de Jordi Bunster, John Topley et Jaryl:

I. rapide et sale chemin:

raise @foo.inspect 

dans votre contrôleur. Ou

<% raise @foo.inspect %> 

à votre avis.

II. Enregistrement approprié à vous development.log:

logger.debug "@foo == #{@foo.inspect}" 

III. Full-fledged debugging:

Installez le débogueur (gem install ruby-debug), puis démarrez le serveur de développement avec l'indicateur --debugger. Ensuite, dans votre code, appelez l'instruction debugger.

À l'intérieur de l'invite du débogueur, vous avez plusieurs commandes, y compris p pour imprimer la valeur d'une variable.

0

L'exécution d'une exception est le moyen le plus rapide si vous avez juste besoin de regarder une valeur, mais cela vaut la peine d'apprendre à utiliser correctement le débogueur. Il est rare que vous ayez seulement besoin de voir la valeur d'une variable, vous essayez probablement de trouver un bogue dans votre code, et c'est ce à quoi sert un débogueur.

L'envoi des informations dans le journal de développement est plus lent que l'une des deux autres options ici si vous apprenez comment utiliser le débogueur (qui veut lire les fichiers journaux). Utilisez l'enregistreur pour la production, vous allez vouloir voir quelle était la valeur quand quelqu'un vous appelle et dit que tout est cassé.

0

Eh bien, je préfère généralement la sortie d'erreur standard

stderr.print de $ ("whatever")

Son simple et fait le travail.