Bạn cũng có thể xác định một phương thức Rescue_from.
class ApplicationController < ActionController::Base
rescue_from ActionController::RoutingError, :with => :error_render_method
def error_render_method
respond_to do |type|
type.xml { render :template => "errors/error_404", :status => 404 }
type.all { render :nothing => true, :status => 404 }
end
true
end
end
Tùy thuộc vào mục tiêu của bạn là gì, bạn cũng có thể muốn xem xét KHÔNG xử lý các trường hợp ngoại lệ trên cơ sở từng bộ điều khiển. Thay vào đó, hãy sử dụng một cái gì đó giống như gem exception_handler để quản lý phản hồi cho các ngoại lệ một cách nhất quán. Như một phần thưởng, cách tiếp cận này cũng sẽ xử lý các trường hợp ngoại lệ xảy ra ở lớp phần mềm trung gian, như phân tích cú pháp yêu cầu hoặc lỗi kết nối cơ sở dữ liệu mà ứng dụng của bạn không nhìn thấy. Các exception_notifier đá quý cũng có thể quan tâm.