I spent a long time debugging a problem in Rails last night. If I mistype a URL to may rails app (on purpose to test out the error handling) and I put something like:
instead of (the correct)
the abcdef becomes the "template format". i.e. instead of .json or .xml, I am now making a request in the abcdef format. This causes Rails to look for templates with the abcdef format so instead of looking for a template of app/view/errors/frog.html.erb it is looking for /app/view/errors/frog.abcdef.erb BUT, the error message doesn't tell you this. Instead it just says "can't find app/view/errors/ frog.erb"
The route statement I'm using is just
map.resources :frogs
This creates routes that look like
/frogs/:id(.:format)
meaning that the .:format is optional. How do I tell Rails that I don't want the (.:format) as part of my paths OR how do I tell Rails that the :format string must match a particular set of strings? I tried adding :format => 'html' to my list of options for that route but that didn't have any effect.