Ну ... это не Rails, который выплевывает. Это твой контроллер. Поэтому, когда ваша модель не проходит проверку, вы можете плюнуть на что угодно. Вероятно, у вас есть метод создания и обновления, и каждый из них должен обрабатывать XHR. Важно, чтобы вы сами решили, как вы хотите общаться с браузером.
Можно утверждать, что неудачная проверка должна создать ответ (4xx) об ошибке, но это действительно HTTP, а не код ответа приложения. В этом случае ваше приложение обработало запрос должным образом, поэтому ему необходимо вернуть значение 200. Таким образом, обработчик ошибок Ajax не будет вам особенно полезен - это реальные ошибки, связанные с отсутствием страниц, серверными ошибками и т. Д.
Скорее, ваш обработчик успеха должен проверить флэш-хэш, чтобы выяснить, присутствуют ли ошибки, и, если это так, поместить текст ошибки в какое-то подходящее место на странице для вашего пользователя.
Один плагин, который выглядел многообещающе, был Stickies (http://github.com/JokerCatz/stickies). В течение какого-то времени над проектом не было никаких действий, но если он не работает с вашей версией Rails, он не должен быть слишком сложным, чтобы его раскошелиться довести его до текущих уровней Rails.