2013-07-15 15 views
8

Używam Ruby na Rails 4 w Rubim 1.9.3. Gdy wystąpi błąd podczas zadania rake, otrzymuję bardzo dobry ślad stosu.Włącz zrzut stosu na wyjątku w konsoli Rails 4

Kiedy jednak coś robię w konsoli railsowej, która wyzwala wyjątek, widzę tylko komunikat o błędzie i jedną linię kodu, który go uruchomił (który najczęściej jest gdzieś w rdzeniu rdzenia).

Czy istnieje sposób, aby włączyć te zrzuty stosów w konsoli?

Odpowiedz

22

znalazłem rozwiązanie siebie.

Najwyraźniej potrzebowałem polecenia wtf?, które jest dostarczane z podnośnikiem.

[7] project » p.known_attributes 
NoMethodError: undefined method `foo' for #<Bar:0x007f871fd12a38> 
from /[...]/gems/activemodel-4.0.0/lib/active_model/attribute_methods.rb:436:in `method_missing' 

[8] project » wtf? 
Exception: NoMethodError: undefined method `foo' for #<Bar:0x007f871fd12a38> 
-- 
[... stack dump ...] 

[9] project » 
+0

To mnie cieszy –

1

Gdy wystąpi błąd w konsoli powinieneś zobaczyć coś takiego

$ rails c 
Loading development environment (Rails 4.0.0) 
irb(main):001:0> no_method 
NameError: undefined local variable or method `no_method' for main:Object 
    from (irb):1 
    from /Users/michal/Projects/tennisliga/.gems/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start' 
    from /Users/michal/Projects/tennisliga/.gems/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start' 
    from /Users/michal/Projects/tennisliga/.gems/gems/railties-4.0.0/lib/rails/commands.rb:64:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

jaki jest problem z tym? Nie widzisz śladu stosu?

EDIT: Jeśli używasz Pry i chcieliby zobaczyć więcej ślad stosu, patrz pry wiki krótki przykład (pokaż wszystkie linie)

Pry.config.exception_handler = proc do |output, exception, _pry_| 
    output.puts "#{exception}" 
    output.puts "#{exception.backtrace}" 
end 
+0

Kiedy zrobić dokładnie to, co ja dostaję tylko 'NameError: niezdefiniowana zmienna lokalna lub metoda„no_method”za główny: Przedmiot od (Par): 1: w„

”'. Brak zrzutu stosu. –

+0

Właśnie widzę, że podnośnik może mieć w tym swój udział. Czy to możliwe? –

+0

Czy masz zestaw podrzędny jako domyślną konsolę? –

Powiązane problemy