我经常在 Rails 视图中看到这样的事情:
<% form_tag some_path do -%>
<% end -%>
为什么每行末尾都有一个“-”?没有它我的代码可以正常工作,但这是最佳实践还是某种安全措施?
我经常在 Rails 视图中看到这样的事情:
<% form_tag some_path do -%>
<% end -%>
为什么每行末尾都有一个“-”?没有它我的代码可以正常工作,但这是最佳实践还是某种安全措施?
将“-”添加到标记的末尾会删除该行的换行符,以及后面可能出现的任何空白字符。同样,将其添加到开头会删除可能在其前面的任何空白字符。
例如,
Some text.
<% -%>
More text.
结果是:
Some text.
More text. # The linebreak in line 2 was suppressed in the output.
使用大多数标签,您可以更改 ERB 如何修剪同一行上的空白。基本上,在标签末尾添加“-”字符将防止 ERB 在 HTML 的同一行上的标签后包含任何空格,包括最后的回车符。标记开头的“-”对标记之前的字符执行相同的操作。