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.

Reply via email to