代码之家  ›  专栏  ›  技术社区  ›  mmacaulay

RubyonRails中服务器端代码块中“-”的含义是什么?

  •  2
  • mmacaulay  · 技术社区  · 14 年前

    我经常在Rails视图中看到这样的事情:

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

    为什么每一行的末尾都有一个“-”号?没有它,我的代码就可以正常工作,但是这是一种最佳实践还是某种安全措施?

    2 回复  |  直到 14 年前
        1
  •  7
  •   John Feminella    14 年前

    将“-”添加到标记的末尾将删除该行的换行符以及后面可能出现的任何空白字符。同样,将其添加到开头将删除它前面的所有空白字符。

    例如,

    Some text.
        <% -%>
    More text.
    

    结果:

    Some text.
        More text.   # The linebreak in line 2 was suppressed in the output.
    
        2
  •  0
  •   Mark Rushakoff    14 年前

    prevents extra whitespace from being output :

    对于大多数标记,您可以更改erb如何在同一行上修剪空白。基本上,在标记的末尾添加一个“-”字符将防止erb在标记后的同一行中包含任何空白到HTML,包括最终回车。标记开头的“-”对标记前面的字符也一样。