在轨道上的ruby中的服务器端代码块中“ - ”是什么意思?

时间:2010-04-06 00:54:13

标签: ruby-on-rails erb

我经常在rails视图中看到类似的内容:

<% form_tag some_path do -%>      
<% end -%>

为什么每条线的末尾都有“ - ”?没有它我的代码工作正常,但它是最佳实践还是某种安全措施?

2 个答案:

答案 0 :(得分:7)

在标记的末尾添加“ - ”会删除该行的换行符以及可能跟随的任何空格字符。同样,将它添加到开头会删除可能在它之前的任何空白字符。

例如,

Some text.
    <% -%>
More text.

结果:

Some text.
    More text.   # The linebreak in line 2 was suppressed in the output.

答案 1 :(得分:0)

prevents extra whitespace from being output

  

对于大多数标签,您可以更改ERB修剪同一行上的空白区域的方式。基本上,在标记的末尾添加“ - ”字符将阻止ERB在与HTML相同的行上的标记之后包括任何空格,包括最终的回车。标签开头的“ - ”对标签前的字符执行相同的操作。