Does it have something to do with output?
So, <%= ...code... %> is used for outputting after code is executed, and <% ...code... %>
Both execute the Ruby code contained within them. However, the different is in what they do with the returned value of the expression. <% ... %> will do nothing with the value. <%= ... %> will output the return value to whatever document it is executed in (typically a .erb or .rhtml document).
Something to note, <%= ... %> will automatically escape any HTML contained in text. If you want to include any conditional HTML statements, do it outside the <% ... %>.
<%= "
" if need_line_break %>
<% if need_line_break %>
<% end %>