2010-08-15 15 views
15

Kann jemand in Schienen im Modell debuggen? Ich habe eine Methode, die jetzt funktioniert, und ich habe versucht, den Wert der Variablen zwischen logger.debug val_name zu überprüfen, die in den Controllern funktioniert, aber nicht in den Modellen weiß jemand warum? Das Modell wird nicht von Active Record geerbt, wenn dies das Problem sein kann. Gibt es eine Möglichkeit, es zu debuggen?Wie Debuggen in Model?

Antwort

7

Sie können einfach "puts" innerhalb Ihrer Modellmethode aufrufen und es wird ausgegeben. Sie können es in den Schienenprotokollen oder in der Konsolenausgabe sehen.

+0

das war sehr hilfreich und einfach, ich frage mich, warum ich das nicht versucht habe :) – Dennis

+0

Sie können auch Unit-Tests für Ihr Modell machen. –

3

da Ihr Modell kein Active ist es nicht die Logger Methode gemischt-in

Sie es wie folgt hinzufügen können (wahrscheinlich andere bessere Möglichkeiten, es zu tun, wie gut)

class YourModelThatIsNotActiveRecord 
    def logger 
     RAILS_DEFAULT_LOGGER 
    end 
end 

ein Bündel von großen Informationen auch hier - http://guides.rubyonrails.org/debugging_rails_applications.html

0

Wenn Sie Mongrel mit script/server in Entwicklung drehen, ist dies funktionieren könnte:

  1. installiere das Ruby-Debug-Juwel, falls du es noch nicht hast: gem install ruby-debug;
  2. hinzufügen require 'ruby-debug' zu config/environments/development.rb;
  3. Setzen Sie die Zeile debugger in die Quelle, in der Sie eine Debugging-Sitzung initiieren möchten.

Schauen Sie sich das offizielle Guide für weitere Informationen: http://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-ruby-debug

22

Eine andere Möglichkeit, von jedem beliebigen Ort in Ihrer Anwendung anmelden:

Rails.logger.debug "Show this message!" 

Dies wird immer ausgegeben, um die log/development.log Datei.