On Aug 18, 2011, at 6:05 PM, 7stud -- wrote:
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>
Here's another way to look at this. '<%=' is a shortcut for '<% puts'.
There's a similar construction in PHP: '<?=' is a shortcut for '<?php
echo (or print)'.
Walter
--
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-
t...@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
.
--
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.