I have run into a very interesting issue. On one of my apps, after upgrading from 2.3 to 3.0, the form validation started to escape html. Normally what should happen when you submit a form and one of the fields fails validation that field would get surrounded with a
and so on. That seems to be broken in my app and what I get is the correct html but it is escaped, so in the browser I see the actual html code instead of the input control. For instance, this excerpt from the html source:
I have run into a very interesting issue. On one of my apps, after
upgrading
from 2.3 to 3.0, the form validation started to escape html. Normally
what
should happen when you submit a form and one of the fields fails
validation
that field would get surrounded with a <div class="fieldWithErrors"> and
so
on. That seems to be broken in my app and what I get is the correct html
but
it is escaped, so in the browser I see the actual html code instead of
the
input control. For instance, this excerpt from the html source:
Strings are HTML-escaped by default in Rails 3, so if you have a
helper that generates HTML then you need to explicitly tell Rails that
it is 'HTML-safe'.
Are you using a helper or perhaps a plugin to generate your form HTML?
If so, it could be that it needs updating to mark HTML as HTML-safe.
(This would also explain why a newly-generated Rails 3 app which
doesn't have that helper/plugin is generating this HTML correctly.)