2012年7月3日火曜日

erbで余計な空白と改行を消す

erbで以下のようなコードを書くと出力されるHTMLに空白が大量に出て残念な感じになる。

erb
    <% (1..9).each do |i| %>
  • <%= i %>
  • <% end %>
出力
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
<% %>で書いた部分の改行がHTMLのソースに表示されるからだ。
<% %>では無く<% -%>と、書くと改行が消せる。

erb
    <% (1..9).each do |i| -%>
  • <%= i %>
  • <% end -%>
出力
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
ちなみに<%- %>と書くと、<%- %>の行頭にある空白を消してくれる。
<%- -%>こう言う書き方もできる。
この機能をtrim_modeと言う。

なるほどー

0 件のコメント:

コメントを投稿