Whats the difference between "<%= abc %>" and "<%= abc -%>"


#1

What difference does the “-” at the end make?


#2

What difference does the “-” at the end make?

-%> eats the newline.

.<%= abc %><%= xyz %>. will turn into

.abc
xyz
.

.<%= abc -%><%= xyz -%>. will turn into

.abcxyz.

-philip


#3

Thanks Philip, that makes sense.


#4

xyz
So
<%= “ghi” %><%= “klm” %>

Can anyone elucidate?

Ah… the -%> is only “end of line”. Didn’t realize that.

I just plugged this into 2.2.2:

<%= “abc” %><%= “def” %>
<%= “ghi” %><%= “klm” %>


<%= “abc” %><%= “def” -%>
<%= “ghi” %><%= “klm” %>

And got back this:

abcdef
ghiklm


abcdefghiklm


#5

On Wed, Mar 18, 2009 at 4:00 PM, Colin L. removed_email_address@domain.invalid
wrote:

.

abcdefghijkl

However on testing this in Rails 2.2.2 and viewing the source of the page, I
am not seeing this. The - seems to make no difference, I see the two line
output in both cases.

Can anyone elucidate?

Colin

Chances are your web server supports some sort of output compression,
so all this doesn’t really matter much. Surely you don’t depend on
newlines to properly display a page, right?


Greg D.
http://destiney.com/


#6

2009/3/18 Philip H. removed_email_address@domain.invalid


abcdefghiklm

Which is what you should get, I tried exactly the same and got

abcdef
ghiklm


abcdef
ghiklm

Which is not correct. Following a little head scratching I realised
that
that the erb file had windows line endings (\r\n) but I am now working
on
Ubuntu. I changed the line endings to Unix format and I got
abcdefghiklm in
the second case as expected.

Is this a reportable bug? should the -%> not remove \r\n if present?
Colin


#7

Is the -%> only used with a <%= ?
Can it be used with, for example <% end -%>


#8

2009/3/18 Philip H. removed_email_address@domain.invalid

.<%= abc -%><%= xyz -%>. will turn into

.abcxyz.

According to Agile Development with Rails this is not quite correct.
The -
is supposed to remove the newline after the -%>
So
<%= “abc” %><%= “def” %>
<%= “ghi” %><%= “klm” %>

will provide

abcdef
ghijkl

but
<%= “abc” %><%= “def” -%>
<%= “ghi” %><%= “klm” %>

will provide

abcdefghijkl

However on testing this in Rails 2.2.2 and viewing the source of the
page, I
am not seeing this. The - seems to make no difference, I see the two
line
output in both cases.

Can anyone elucidate?

Colin


#9

2009/3/19 sultan removed_email_address@domain.invalid

Is the -%> only used with a <%= ?
Can it be used with, for example <% end -%>

Yes it can, in fact that is possibly the main use as it removes the line
completely from the source. Also useful with ‘for’ and so on.
Colin