Вы можете выполнять обработку исключений в любом месте приложения rails, поскольку оно является частью Ruby, а не частью Rails. Везде, где вы хотите поймать ошибки, просто оберните это так:
begin
SomethingElse.doSomething(x, y)
rescue Exception
ErrorLogger.log(Time.now, "Something went wrong!")
end
Обратите внимание, что вы всегда должны "спасать Исключение", а не просто "спасать". Простое использование «rescue» перехватит только StandardError, который является подклассом Exception (то есть что-то может пройти через то, что вы не хотите пройти).
Также, как обычно, вы можете повысить исключение, выполнив:
raise ArgumentError, "Illegal arguments!"
в любом месте вашего кода, будь то модель или контроллер.