We all know that <%= string %> emits a String in ERB. And <% string %> runs Ruby code, but does not emit a String. When starting working with Rails, you almost expect the syntax for block helpers to be: <%= content_tag(:div) do %> The content <% end %> Why doesn't it work that way? It has to do with how the ERB parser works, looking at each line individually. When it sees <% %>, it evaluates the c