Как справиться с плохими форматами в маршрутах в Rails 2.3? Например, предположим, что у вас есть действие, которое хочет обрабатывать запросы html или json, но не более того, как вы ограничиваете его, позволяя обнародовать читаемые пользователем ошибки? Следующий фрагмент показывает начало:
respond_to do |format|
format.html # render the default
format.json { do something appropriate }
format.all ?
end
Беда в том, что поставить вместо?, Я попробовал:
format.all :text => "That's a bad format.", :status => 406
и хотя код состояния установлен правильно, текст не отображается (по крайней мере, в формате, подобном com, который я получаю.
Одной из возможностей может быть изменение файла маршрутов так, чтобы были приняты только два формата, но это приводит к взрыву маршрута. (У меня есть 4 приемлемых формата.) Идея использования
map.connect '/xyz.:format', :action => ..., :controller => ..., :format => '/html|json/'
звучит хорошо, но не работает - это соответствует чему-то вроде xyz.comhtml. Я расстроен и надеюсь, что что-то упускаю.