Tôi đang sử dụng rails-api để xây dựng một API không có giao diện web. Khi tôi gặp lỗi trong quá trình phát triển, tôi chỉ muốn xem thông báo lỗi và stacktrace ở dạng văn bản thuần túy mà không có tất cả gói HTML. Làm cách nào để ghi đè lên xử lý ngoại lệ toàn cục để nó hiển thị stacktrace trong chế độ phát triển trong văn bản thuần túy/JSON và thông báo lỗi chung trong sản xuất?Làm cách nào để nhận ngoại lệ để hiển thị phiên bản thuần văn bản của trang lỗi phát triển Rails?
8
A
Trả lời
3
Tôi khuyên bạn nên bao gồm dấu vết ngăn xếp trong mã sản xuất có lẽ không phải là ý tưởng tốt từ điểm bảo mật.
Dưới đây là làm thế nào tôi sẽ làm điều đó:
render :json => {message:exception.message, stack_trace: exception.stacktrace}
Tôi hy vọng điều này sẽ giúp.
Sau khi làm rõ Sam tôi có thể thêm:
Trong điều khiển cơ sở của bạn đối với API của bạn (có thể là ApplicationController):
class ApplicationController < ActionController::Base
...
rescue_from Exception do |exception|
error = {message:exception.message}
error[:stack_trace] = exception.stacktrace if Rails.env.development?
render :json => error
end
...
end
Nên biết trước: Bạn có thể không muốn giải cứu từ mọi ngoại lệ duy nhất trong cách này nhưng đây là cách bạn sẽ làm điều đó nếu bạn đã làm.
2
Một số cải tiến so với câu trả lời @donleyp để có được một dấu vết sạch trong Rails 3.2 và đầu ra generic thông tin lỗi trong sản xuất:
class ApplicationController < ActionController::API
...
rescue_from Exception do |exception|
if Rails.env.development?
error = {message:exception.message}
error[:application_trace] = Rails.backtrace_cleaner.clean(exception.backtrace)
error[:full_trace] = exception.backtrace
render :json => error
else
render :text => "Internal server error.", :status => 500
end
end
...
end
Các vấn đề liên quan
- 1. Cách lấy một trang văn bản thuần lỗi Django
- 2. Hiển thị vcard php dưới dạng văn bản thuần túy
- 3. Hiển thị văn bản thuần túy trong ứng dụng Android
- 4. Nhận Rails để hiển thị lỗi kiểu phát triển trong sản xuất
- 5. Cách lấy văn bản ngoại lệ Python
- 6. Làm cách nào để tăng ngoại lệ trong Rails để nó hoạt động giống như các ngoại lệ Rails khác?
- 7. Làm cách nào để chèn văn bản thuần túy?
- 8. Làm cách nào để gửi văn bản thuần túy thay vì email HTML từ Rails?
- 9. Làm cách nào để thêm mã văn bản thuần túy vào một trang web?
- 10. Nhận văn bản thuần tuý từ văn bản RTF
- 11. Làm thế nào để hiển thị văn bản Bengali đúng
- 12. Bỏ hiển thị "Văn bản - Nút văn bản trống" trong thanh công cụ dành cho nhà phát triển IE
- 13. cách hiển thị phiên bản xuất bản trong hộp văn bản?
- 14. Gửi email nhiều phần với Rails: cách ưu tiên phiên bản HTML trên văn bản thuần tuý?
- 15. Làm cách nào để chạy một phiên bản ứng dụng web trong khi phát triển phiên bản tiếp theo?
- 16. Làm cách nào để hiển thị thuộc tính Văn bản của UserControl?
- 17. Trình nghe Jmeter hiển thị "javax.net.ssl.SSLException: Thông báo SSL không được nhận dạng, kết nối văn bản thuần túy?"
- 18. Làm cách nào để có được kích thước của văn bản được hiển thị trên QPainter?
- 19. PHP: Làm cách nào để hiển thị nội dung của một tệp văn bản trên trang của tôi?
- 20. Làm thế nào để hiển thị văn bản trong một dòng trong văn bản wpf
- 21. Làm cách nào để thêm một 'nút văn bản thuần túy' vào biểu mẫu zend?
- 22. JasperReport - văn bản quấn để hiển thị văn bản dài trong trường văn bản
- 23. Làm cách nào để trang văn bản dài?
- 24. Làm cách nào để hiển thị văn bản HTML từ API trên iPhone?
- 25. Có cách nào để hiển thị ngoại lệ tùy chỉnh trong cảnh báo trong Android không?
- 26. Làm cách nào để ngăn trình duyệt hiển thị phiên bản được lưu trong bộ nhớ cache của một trang?
- 27. Thay đổi văn bản will_paginate hiển thị
- 28. Bàn điều khiển văn bản để phát triển trong JAWS?
- 29. Văn bản hiển thị văn bản một phần
- 30. Nhận văn bản thuần tuý từ một nhãn hiệu có chứa văn bản có dạng là
tôi nên làm rõ các câu hỏi - Tôi đang yêu cầu cho chế độ phát triển chỉ ... và cách ghi đè phản hồi trên toàn cầu. –
Tôi nghĩ rằng 'stacktrace' là một lỗi đánh máy, và nên là' backtrace'. – Jacob