2013-07-15 41 views
8

Tôi đang sử dụng Ruby on Rails 4 trên Ruby 1.9.3. Khi một lỗi xảy ra trong một nhiệm vụ cào, tôi nhận được một dấu vết ngăn xếp rất tốt đẹp.Bật đổ ngăn xếp trên ngoại lệ trong bảng điều khiển Rails 4

Khi tuy nhiên tôi làm điều gì đó trong bảng điều khiển đường ray (pry) kích hoạt ngoại lệ, tôi chỉ thấy thông báo lỗi và một dòng mã đã kích hoạt nó (phần lớn thời gian ở đâu đó trong lõi đường ray)).

Có cách nào để bật các ngăn xếp ngăn xếp này trong bảng điều khiển không?

Trả lời

22

Tôi tìm thấy một giải pháp bản thân mình.

Rõ ràng, tôi đang cần lệnh wtf? đi kèm với nâng lên.

[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

Điều này làm tôi hạnh phúc –

1

Khi có một lỗi trong giao diện điều khiển, bạn sẽ thấy một cái gì đó như thế này

$ 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>' 

là gì vấn đề với nó? Bạn không thấy dấu vết ngăn xếp?

EDIT: Nếu bạn đang sử dụng nâng lên và muốn xem chi tiết stack trace, hãy tham khảo pry wiki dụ ngắn (hiển thị tất cả các dòng)

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

Khi tôi làm chính xác điều đó, những gì tôi nhận được chỉ là 'NameError: biến địa phương không xác định hoặc phương pháp 'no_method' cho chính: Object từ (nâng lên): 1: trong '

' '. Không có bãi chứa ngăn xếp. –

+0

Tôi chỉ thấy bây giờ mà pry có thể có một bàn tay trong này. Có thể đó là có thể? –

+0

Bạn có đặt nâng lên làm bảng điều khiển mặc định không? –