对不起这个问题,我认为它更具有offtopic,但我在谷歌上找不到任何东西!
我现在多次看到很多人使用-%>
而不是%>
。什么意思?
示例:
<% @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?
他在这里也使用-%>
作为所有块。
答案 0 :(得分:12)
我想添加一些我了解ERB的资源:
Rails扩展 ERB
,这样您就可以通过在Rails模板中为标记添加尾部连字符来禁止换行符:
<ul>
<% for @item in @items -%>
<li><%= @item %></li>
<% end -%>
</ul>
评论标记使用 hash
符号:
<%# This is just a comment %>
带有 equals sign
的标记表示附带的代码是表达式,并且渲染器应该将代码元素替换为代码的结果(作为字符串)当它呈现模板时。使用表达式将一行代码嵌入到模板中,或显示变量的内容:
Hello, <%= @name %>.
Today is <%= Time.now.strftime('%A') %>.
使用一个 equal sign
,字符串将被编码。为避免编码,您可以使用两个 equals signs
(或raw):
Hello, <%== @unencodedOutput %>
没有 equals
符号的代码表示附带的代码是 scriptlet 。捕获并执行每个scriptlet,然后将代码的最终结果注入 scriptlet 点的输出。
<ul>
<% for @item in @shopping_list %>
<li><%= @item %></li>
<% end %>
</ul>
Scriptlet最常用于将循环或条件逻辑嵌入到模板中: