У меня был похожий случай, но я спасал отдельные методы API отдельно, потому что мне нужны были ошибки, специфичные для метода, я также мог иметь несколько спасений в зависимости от типа ошибки.
в моем контроллере приложения у меня был метод:
def error(status, code, message)
render :js => {:response_type => "ERROR", :response_code => code, :message => message}.to_json, :status => status
end
Тогда в моем контроллере API
def some_method
## do stuff
rescue
error(500, method_specific_error_code, "it all done broke")
## additional error notifications here if necessary.
end
потому что я спасаю ошибку, мне нужно было явно вызвать api hoptoad.
Для обработки аутентификации у меня было before_filter
для login_required
def login_required
error(403, 403, "Not Authenticated") unless authenticated
end
И чтобы спасти 404 ошибки:
def render_404
error(404, 404, "Unknown method")
end
Надеюсь, это поможет!