2010-08-15 9 views
15

Quelqu'un sait-il comment déboguer dans les rails du modèle? J'ai une méthode qui fonctionne maintenant et j'essayais de vérifier la valeur de la variable entre saisir logger.debug val_name qui fonctionne dans les contrôleurs mais pas dans les modèles quelqu'un sait pourquoi? Le modèle n'est pas hérité de Active Record si cela peut être le problème. Y a-t-il un moyen de le déboguer?Comment déboguer dans le modèle?

Répondre

7

Vous pouvez simplement faire "puts" à l'intérieur de vos appels de méthode de modèle et il sortira. Vous pouvez le voir dans les journaux de rails, ou la sortie de la console.

+0

C'était très utile et facile, je me demande pourquoi je n'ai pas essayé ça :) – Dennis

+0

Vous pouvez également faire des tests unitaires pour votre modèle. –

3

depuis votre modèle n'est pas un ActiveRecord il n'a pas le vous pouvez l'ajouter comme méthode d'enregistreur mixte dans

ce (probablement d'autres meilleures façons de le faire aussi bien)

class YourModelThatIsNotActiveRecord 
    def logger 
     RAILS_DEFAULT_LOGGER 
    end 
end 

une tas d'excellentes informations ici aussi - http://guides.rubyonrails.org/debugging_rails_applications.html

0

Si vous Préchauffage Mongrel à l'aide script/server dans le développement, cela pourrait fonctionner:

  1. installez la gemme ruby-debug, si vous ne l'avez pas déjà: gem install ruby-debug;
  2. ajouter require 'ruby-debug' à config/environments/development.rb;
  3. placez la ligne debugger dans la source où vous souhaitez lancer une session de débogage.

Regardez ce guide officiel pour plus d'informations: http://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-ruby-debug

22

Une autre façon pour vous connecter où que vous soyez dans votre application:

Rails.logger.debug "Show this message!" 

Ce sera toujours la sortie au fichier log/development.log.