为什么许多人在Rails中使用“-%>”而不是“%>”?

11

抱歉问这个问题,我认为它更偏离主题,但我在谷歌上找不到任何相关信息!

我现在看到很多人使用-%>而不是仅使用%>。这是什么意思呢?

例如:

<% @images.each_slice(6) do |slice| -%>
  <div class="gallery">
    <% slice.each do |image| -%>
      <%= image_tag(image.url, :alt => image.alt) %>
    <% end -%>
  </div>
<% end -%>

来源:Rails each loop insert tag every 6 items?

这里他还使用了-%>来表示所有块。

1个回答

13

我想补充一些我知道的ERB资源:

  • Rails扩展了ERB,因此您可以通过在Rails模板中的标记末尾添加一个连字符来简单地抑制换行符

<ul>
  <% for @item in @items -%>
    <li><%= @item %></li>
  <% end -%>
</ul>
  • 评论标记使用 井号 符号:

  •  <%# This is just a comment %>
    
  • 一个带有等号的标签表示所包含的代码是一个表达式,渲染器在渲染模板时应该用代码的结果(作为字符串)替换代码元素。使用表达式将一行代码嵌入到模板中,或者显示变量的内容:

  •  Hello, <%= @name %>.
     Today is <%= Time.now.strftime('%A') %>.
    
  • 使用一个等于号对字符串进行编码。如果要避免编码,您可以使用两个等于号(或raw):

  •     Hello, <%== @unencodedOutput %>
    
  • 没有equals符号的标签表示所包含的代码是脚本语句。每个脚本语句都会被捕获并执行,代码的最终结果将被注入到脚本语句的位置。

  • <ul>
      <% for @item in @shopping_list %>
        <li><%= @item %></li>
      <% end %>
    </ul>
    

    脚本片段最常用于将循环或条件逻辑嵌入模板中:

    阅读介绍ERB模板化以了解更多信息。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接