Cách giải cứu từ RoutingError
trong đường ray 3.1 ứng dụng. Nếu tôi nhầm thì có thể sử dụng rescue_from RoutingError
trong bộ điều khiển ứng dụng nhưng hiện tại không thể.Cứu thoát khỏi đường ray lỗi định tuyến 3.1
Trả lời
Không có cách nào tuyệt vời để xử lý nó, nhưng có một vài cách giải quyết. Các cuộc thảo luận here mang lại những gợi ý sau đây:
đường
Thêm dòng sau vào các tuyến đường tập tin của bạn:
match "*", :to => "home#routing_error"
và xử lý các sai sót trong hành động này:
def routing_error
render text: "Not found, sorry", status: :not_found
end
Tôi không thể nhân rộng r @ matthew-savage's esults. Tuy nhiên, theo các hướng dẫn trên Rails route globbing và this question trên một câu hỏi StackOverflow, tôi giải quyết vấn đề này như sau:
routes.rb
match "*gibberish", :to => "home#routing_error"
thông báo làm thế nào tôi bao gồm văn bản sau khi các ký tự đại diện. Bộ điều khiển là tốt như trình bày ở trên:
điều khiển/home_controller.rb
....
def routing_error
render text: "Not found, sorry", status: :not_found
end
Tốt example.
route.rb
Rails 3:
match '*unmatched_route', :to => 'application#raise_not_found!'
Rails 4:
get '*unmatched_route' => 'application#raise_not_found!'
application_controller.rb
def raise_not_found!
raise ActionController::RoutingError.new("No route matches #{params[:unmatched_route]}")
end
- 1. Lỗi định tuyến đường ray? 'Không có con đường trận'
- 2. Tuyến đường và tuyến đường ray Ember
- 3. Làm thế nào để làm cho ASP.NET định tuyến thoát khỏi giá trị tuyến đường?
- 4. Điều khiển thoát khỏi đường ray sau khi hiển thị
- 5. asset_url trong thư trên đường ray 3.1
- 6. Định tuyến đường ray (root: to => ...)
- 7. Đường ray 3.1 Đường ống - Loại trừ Tệp Javascript
- 8. đường ray 3.1 tạo tệp CSV
- 9. Sử dụng nhật ký tuyến đường mặc định trong đường ray
- 10. Đường ray tài sản 3.1 đường ống với PDFKit
- 11. Tuyến đường ray có ngày
- 12. Đường ray tuyến tính logic
- 13. Đường ray thay đổi định tuyến gửi trong form_for
- 14. đường ray 3 tuyến đường: tuyến đường tự động khác nhau cho mô hình
- 15. ray 3 tuyến đường bí danh
- 16. Đường ray 3.1 không hiển thị fields_for từ nested_form
- 17. Định tuyến đường ray: Cung cấp giá trị mặc định cho người trợ giúp đường dẫn
- 18. Đường ray khởi động 3.1 trong môi trường khác nhau
- 19. Cách * không * để hủy Chế độ xem khi thoát khỏi tuyến đường trong Ember.js
- 20. JST chưa được xác định cho đường ray 3.1 Ứng dụng
- 21. đường ray css kế hoạch chi tiết 3.1 trợ giúp
- 22. Đường ray: tra cứu khóa ngoài không id ActiveRecord
- 23. Đường ray 3 tuyến nối thêm _index để định tuyến tên
- 24. Làm cách nào để xác định trình trợ giúp định tuyến riêng trong đường ray 3?
- 25. Heroku lỗi khi tôi chạy di cư (đường ray 3.1 tuyết tùng stack)
- 26. Sử dụng định tuyến góc dọc theo tuyến đường tròn
- 27. carrierwave - ray 3.1- Phương pháp xác định: image_will_change
- 28. Đường ray 3.1: Xác định xem nội dung có tồn tại
- 29. ứng dụng thừa kế với lỗi định tuyến lạ, Không trận tuyến đường {}
- 30. Làm thế nào để nội tuyến css khi sử dụng đường ray tài sản đường ray
Các phản ứng về mặt kỹ thuật chính xác hơn sẽ là 'làm cho văn bản: "Không tìm thấy, xin lỗi", trạng thái:: not_found, content_type: Mime :: HTML' để xử lý một cách chính xác phản ứng như '/icon.png' – kizzx2
Infact, giải pháp từ @aboutaaron đã làm việc cho tôi. Chỉ một "*" trong mẫu tuyến đường không hoạt động. Cần thêm một số CRAP :) –