Tim Shaffer wrote in post #1017353: > <%= prints the contents of the tag,
Well, it never meant that. <%= tells ruby to print the result of the expression between the tags. For instance, <%= 2+2 %> would not print '2 + 2', it would print '4'. But even the "result of the expression" isn't an entirely accurate description--because in rails 3 you write: <%= form_for(@user) do |f| %> which doesn't fit that description. In ruby, 'form_for(@user) do |f|' isn't an expression--it's the first half of a loop/block, so it's an incomplete expression. In other words, in ruby if you wrote: result = some_func(arg) do |x| you would get an error. Maybe its best to think of <%= form_for() as an exception to the rule? One example of how <%= and <% differ is this: <% 3.times do |i| %> <div>loop: <%= i %></div> <% end %> The <% tags just execute the ruby code and don't enter any text onto the page, which causes ruby/.erb to loop over the <div> tag 3 times. The <%= tag inside the loop prints the value of the variable i. So you get: <div>loop: 0</div> <div>loop: 1</div> <div>loop: 2</div> -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.