I’ve recently updated several projects to Rails 2.2. The upgrade process was very smooth and fast, and everything seemed to be just fine until today: when I visited some pages of one project, I noticed some parts on serval pages were missing.
What happened? I didn’t change any MVC code.
A quick check led to this result: some content_tag and div_for calls don’t work anymore. Take this snippet for example:
- div_for @post do %h2 = h @post.title .body = simple_format(h @post.body)
Haml 2.0.4 was used in this rail project. I doubted Haml might be not compatible with Rails 2.2. To confirm this, I created a rails app, and the following just works with ERB (the first one is an example from the Rails rdoc):
<% content_tag :div, :class => "strong" do -%> Hello world! <% end -%> <% div_for @post do -%> <h2><%= h @post.title %></h2> <div><%= simple_format(h @post.body)</div> <% end -%>
This needs further investigation. If it’s indeed Haml’s problem, hope there’ll be a fix in Edge Haml ASAP.
Update (Nov 29, 2008): Haml 2.0.5 released and this issue has been fixed.