Monday 5 March 2012

Rails views: .html.haml vs .haml / html.erb vs erb

Normally I use the .haml extension for my views. Today while working on one Rails app I have learned why in some cases one cannot just use .haml.


Given the above controller, if you just use .haml instead of .html.haml every response will be rendered using that .haml template.

Initially I had created app/views/contacts/index.haml for responding to html requests.
After I changed 'repond_to :html' to 'respond_to :html, :json' -- I was confused when I saw an HTML response when fetching '/contacts.json'.

Renaming 'app/views/contacts/index.haml' to index.html.haml' solved the problem, Rails no longer used index.haml to render the JSON response.


No comments: