Home » Ruby » '-%>' (minus sign) at the end of a ERb sequence

'-%>' (minus sign) at the end of a ERb sequence

Posted by: admin November 30, 2017 Leave a comment


What’s the point of using ‘-‘ (minus sign) at the end of a ERb sequence?


<% 3.times do -%>
  FooBar<br />
<% end -%>

Regardless of whether I use ‘-‘ or not, a browser renders the same output.

Thanks, Aplha.


Before Rails 3, ERB adds additional spaces before and after the value when rendering the HTML content. In HTML spaces are not significant, except when you are using special tags such as <pre>.

Using the - sign forced ERB to avoid additional spaces.

This is completely useless in Rails 3.


Using a minus sign on the opening or closing part of an erb tag suppresses whitespace before or after the tag on that line.

It was mainly useful when generating things like text/plain emails with erb but like @Simone pointed out, it’s now moot.