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

mma*_*lay 2 ruby-on-rails erb

我经常在rails视图中看到这样的东西:

<% form_tag some_path do -%>      
<% end -%>
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*lla 7

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

例如,

Some text.
    <% -%>
More text.
Run Code Online (Sandbox Code Playgroud)

结果是:

Some text.
    More text.   # The linebreak in line 2 was suppressed in the output.
Run Code Online (Sandbox Code Playgroud)