Você também pode definir um método 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
Dependendo de qual é o seu objetivo, você também pode considerar NÃO manipular exceções por controlador. Em vez disso, use algo como a gem exception_handler para gerenciar as respostas às exceções de forma consistente. Como um bônus, esta abordagem também tratará exceções que ocorrem na camada de middleware, como análise de solicitação ou erros de conexão de banco de dados que seu aplicativo não vê. A gema exception_notifier também pode ser de interesse.