I have a Rails 2.1.2 site that only has html templates e.g. jobs.html.erb, so when I request a restful resource:
www.mysite.com/jobs/1
It renders my job in html, however, if I request:
www.mysite.com/jobs/1.xml
I get the error:
Template is missing Missing template jobs/show.xml.erb in view path c:/workspace/mysite/app/views
What's worse is that I can also request something like
www.mysite.com/jobs/1.xyz
And indeed I see the error:
Template is missing Missing template jobs/show.xyz.erb in view path c:/workspace/mysite/app/views
To stricly present just html content, what is the cleanest and simplest way to tell Rails that I don't want to render anything other than .html.erb files.
It is important to note that:
It would be great if the solution was not at the render/responds_to level as I would have to modify a significant number of actions. Perhaps there is a way to configure Rails so that only html templates are rendered?
In your routes you can simply remove the line:
map.connect ':controller/:action/:id.:format'
And the ".xyz" will no longer be routed, resulting in 404 errors/.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With