Ruby on Rails syntax


I am very new to Ruby on Rails. I am working my way through the guides at It isn’t going very quickly but I am determined to make it work.

Here is a very basic question but I just can’t figure it out by looking at the examples. It is regarding embedded ruby.

What is the difference between these two forms of embedded code.

<%= … some code … %>


<% … some code … %>

Some lines have the equal sign in it and most of them don’t. I just want to know what the rule is for using either.



<%= %> appends to the output and <% %> doesn’t.
<% %> is for control statements such as if, whereas things that generate HTML or strings to be included in the document should use <%= %>.

For example:

<% if should_apologize? %>

<%= “I’m sorry #{name}.” %>

<% else %>

<%= “I’m not sorry. You deserved it, #{name}.” %>

<% end %>

Thanks very much.