Is = needed in <%= when using form_for?

I have always assumed that when using form_for in erb one should use
<%= form_for ..... %>
However having done some tests it appears that it works identically
without the '=' so
<% form_for ... %> is ok.

Can anyone explain this? I thought that without the '=' the code
would be run but the result would not be injected into the html. I
appear to be wrong however.

Colin

I have always assumed that when using form_for in erb one should use
<%= form_for ..... %>
However having done some tests it appears that it works identically
without the '=' so
<% form_for ... %> is ok.

Can anyone explain this? I thought that without the '=' the code
would be run but the result would not be injected into the html. I
appear to be wrong however.

if you use <%= then when erb compiles your template it automatically
appends the result of the expression to its output buffer.
If you use <% then you can still call concat to do that yourself. This
was a bit confusing - in rails 3 you use <%= for form_for and for
similar helpers that do actually insert content right there

Fred

I have always assumed that when using form_for in erb one should use
<%= form_for … %>
However having done some tests it appears that it works identically
without the ‘=’ so
<% form_for … %> is ok.
Can anyone explain this? I thought that without the ‘=’ the code
would be run but the result would not be injected into the html. I
appear to be wrong however.

This is mentioned specifically in the Rails 3 release notes:

http://edgeguides.rubyonrails.org/3_0_release_notes.html#action-view

That link says that one should now use <%= form_for. My confusion
(now, at least) is that on rails 3.0.3 I find that it makes absolutely
no difference whether one includes the = or not, which appears to be
contrary to the information in the link.

Colin