2014-07-17 16 views
5

Vì vậy, hãy http://localhost:3000/%ED sẽ ném ActionController::BadRequest.Xử lý Rails ActionController :: BadRequest

Nhưng điều tôi thực sự muốn nếu trả lại trang 404 (giống như hầu hết các trang web đều làm).

Ví dụ, Twitter sẽ nói:

giá trị

không hợp lệ Unicode trong một hoặc nhiều tham số /% ED

Và tôi, tôi nhận được rằng trong phát triển (và một trang 500 lỗi trong sản xuất) :

going to localhost:3000/%ED

tôi đã cố gắng rõ ràng rescue_from nhưng lỗi không thậm chí tôi t ứng dụng của tôi khi nó được nâng lên trong ngăn xếp định tuyến.

Bất kỳ ý tưởng nào? Tôi nghĩ về một middleware nhưng không biết làm thế nào tôi sẽ làm điều đó?

+0

Điều bạn muốn là có thể chuyển hướng đến trang 404 trong routes.rb. Điều này có thể giúp: http://stackoverflow.com/questions/19653761/how-redirect-to-404-page-in-routes-rb –

+0

Cảm ơn, vì vậy tôi cần sử dụng 'config.exceptions_app = self.routes'? Nhưng sau đó làm cách nào để biết tôi có 404 hoặc 500? Và nó vẫn sẽ báo cáo ngoại lệ? Ngoài ra, đó có thể là một ý tưởng tồi, như thể có một lỗi trong ứng dụng của tôi, cố gắng sử dụng ứng dụng của tôi có thể tạo ra nhiều lỗi hơn? – Dorian

+0

Tôi đã thêm một câu trả lời cho một câu hỏi tương tự ở đây: http://stackoverflow.com/a/26227688/516820 về cơ bản tôi có một phần mềm trung gian bắt lỗi và trả về trang lỗi '400'. – complistic

Trả lời

5

Tôi đã sử dụng utf8-cleaner và nó hoạt động thực sự tốt.

+1

Cảm ơn bạn vì điều này! – robyoder

Các vấn đề liên quan