Вы можете сделать это с помощью специального промежуточного программного обеспечения Rack. Rails 2 делает именно это в actionpack/lib/action_controller/failsafe.rb
, хотя я не уверен, как это делает Rails 3. См. руководство для получения инструкций о том, как это сделать. В вашем случае я думаю, что вы хотите создать свою собственную версию этого отказоустойчивого промежуточного программного обеспечения, но такую, которая проверяет заголовок / URL-адрес Accept и определяет файл ошибок, который следует использовать, а затем извлекает текущее промежуточное программное обеспечение Failsafe и заменяет его своей версией.