Tengo un sitio de Rails 2.1.2 que solo tiene plantillas html, p. jobs.html.erb, por lo que cuando solicito un recurso reparador:Métodos para limitar el formato de procesamiento de rieles a html
www.mysite.com/jobs/1
Se hace mi trabajo en html, sin embargo, si lo solicito:
www.mysite.com/jobs/1.xml
me sale el error:
Template is missing Missing template jobs/show.xml.erb in view path c:/workspace/mysite/app/views
Lo que es peor es que también puedo pedir algo así como
www.mysite.com/jobs/1.xyz
Y de hecho veo el error:
Template is missing Missing template jobs/show.xyz.erb in view path c:/workspace/mysite/app/views
Para stricly contenido actual sólo HTML, ¿cuál es la manera más limpia y sencilla de decirle a Rails que no quiero para hacer que no sean archivos .html.erb nada.
Es importante tener en cuenta que:
- Algunos de mis acciones del controlador contienen llamadas condicional al método render(), mientras que otros utilizan el comportamiento por defecto de Rails es decir, si no llamar a render(), entonces la la plantilla llamada youraction.html.erb se representará.
- Mi código no utilizar el método responds_to()
Sería muy bueno si la solución no estaba en el nivel render/responds_to como tendría que modificar un número significativo de acciones. ¿Quizás hay una forma de configurar Rails para que solo se procesen las plantillas html?
Eso en realidad no devuelve un 404, sin embargo, simplemente representa '404.html' como una respuesta de 200. Necesitarás agregar ': status => 404' (o': status =>: not_found'). Del mismo modo, para un 406, querrás usar ': status => 406' (o': status =>: not_acceptable'). – Peeja
Esto también falla si la solicitud utiliza el encabezado 'aceptar' para solicitar el tipo de respuesta, ya que no está almacenado en los parámetros – zimkies