Начиная с Rails 3.0 время от времени я получаю уведомление об исключении:
ActionView::MissingTemplate: Missing template [...] with {:locale=>[:en],
:formats=>[:text], :handlers=>[:erb, :builder, :haml]}. Searched in: * [...]
Например, произвольный ручной адрес, например http://example.com/some/path/robots.txt, вызывает ошибку. Не весело.
Я уже давно задал проблему в этом билете и использовал упомянутый здесь патч, но проблема не устранена.
В этом сообщении в блоге предлагается исправление,
http://trevorturk.wordpress.com/2011/12/09/handling-actionviewmissingtemplate-exceptions/
Чтобы использовать это:
respond_to do |format|
format.js
end
Но мне это не кажется правильным, поскольку мне не интересно перегружать действие несколькими форматами. В моем приложении есть отдельные URL-адреса для HTML и JSON API, поэтому достаточно простого render
.
Должен ли я просто проглатывать исключение с помощью rescue_from ActionView::MissingTemplate
и возвращать 406 себя?
Есть ли лучший способ справиться с этой ситуацией?
Или я могу спросить этот путь - во-первых, есть ли какая-либо реальная полезность в создании такого исключения при производстве?