This question already has an answer here:
-
What is the difference between <%, <%=, <%# and -%> in ERB in Rails?
7 answers
I have been going through a crash course of Ruby and Ruby on Rails and i can't figure this out:
In embedded ruby html files, there are several tags.
<% %> for execution
<%= %> for output, but what function do these tags serve: <%= -%>, what's with the "-" sign at the end ?
Thanks.
This link contains a good overview of erb markup.
From the site:
RECOGNIZED TAGS
ERB recognizes certain tags in the provided template and converts
them based on the rules below:
<% Ruby code -- inline with output %>
<%= Ruby expression -- replace with result %>
<%# comment -- ignored -- useful in testing %>
% a line of Ruby code -- treated as <% line %> (optional -- see ERB.new)
%% replaced with % if first thing on a line and % processing is used
<%% or %%> -- replace with <% or %> respectively
All other text is passed through ERB filtering unchanged.
In ruby document there is not the details about this usage <%-
or -%>
. But it works well by this:
erbA = ERB.new(erbA_str, 1, '-', "@output_buffer")
Notice the 3rd parameter '-'
!
It removes the pre or post blanks when using <%-
and -%>
accordingly.