У меня есть сайт Rails 2.1.2, который имеет только html-шаблоны, например. jobs.html.erb, поэтому, когда я прошу успокоительной ресурс:Методы ограничения формата рендеринга Rails на html
www.mysite.com/jobs/1
Это делает мою работу в HTML, однако, если я прошу:
www.mysite.com/jobs/1.xml
Я получаю ошибку:
Template is missing Missing template jobs/show.xml.erb in view path c:/workspace/mysite/app/views
что еще хуже то, что я могу просить что-то вроде
www.mysite.com/jobs/1.xyz
И действительно я вижу ошибку:
Template is missing Missing template jobs/show.xyz.erb in view path c:/workspace/mysite/app/views
Для stricly присутствует только HTML содержание, то, что является чистым и простым способом сказать Rails, что я не хочу, чтобы сделать что-либо, кроме .html.erb файлов.
Важно отметить, что:
- Некоторые из моих действий контроллера содержат условные вызовы метода визуализации() в то время как другие используют поведение Rails по умолчанию, т.е. если вы не вызываете визуализации(), то Будет показан шаблон с именем youraction.html.erb.
- Мой код не использует метод responds_to()
Было бы здорово, если бы решение не было на уровне визуализации/responds_to, как я бы изменить значительное количество действий. Возможно, есть способ настроить Rails так, чтобы отображались только html-шаблоны?
Это фактически не возвращает 404, но он просто отображает '404.html' как ответ 200. Вам нужно будет добавить ': status => 404' (или': status =>: not_found'). Аналогично, для 406 вы хотите использовать ': status => 406' (или': status =>: not_acceptable'). – Peeja
Это также не удается, если запрос использует заголовок «accept» для запроса типа ответа, поскольку он не сохраняется в параметрах – zimkies