Puoi anche definire un metodo 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
A seconda del tuo obiettivo, potresti anche considerare di NON gestire le eccezioni in base al controller. Invece, usa qualcosa come la gem exception_handler per gestire le risposte alle eccezioni in modo coerente. Come bonus, questo approccio gestirà anche le eccezioni che si verificano a livello del middleware, come l'analisi delle richieste o gli errori di connessione al database che l'applicazione non vede. Anche la gemma exception_notifier potrebbe essere di interesse.