2008-11-21 131 views

回答

17
<ul> 
    <% @posts.each do |post| -%> 
     <li><%=post.title%></li> 
    <% end -%> 
    </ul> 

会有在<ul>和第一<li>和最后收</li></ul>之间没有新的线路。如果 - 被忽略,就会出现。

+0

是的。 <% -%>压制新行。当用纯文本(如电子邮件)进行处理时,这非常有用。 – 2008-11-21 21:16:02

2

考虑这个

<div> 
    <% if @some_var == some_value %> 
    <p>Some message</p> 
    <% end %> 
</div> 

以上的收益率低于HTML的代码,如果@some_var是SOME_VALUE

<div> 

    <p>Some message</p> 

</div> 

如果你已经把 - 在结束标记,然后再培训局的解释会删除包含代码标记的新行 - 并导致以下内容

<div>  
    <p>Some message</p>   
</div> 

如果您需要为HTML提供良好的代码,这非常有用。有时你会发现它在与设计师并肩工作时很有用

希望这会有所帮助。是

8

在ERB评估代码不同的选项如下(它们可以在TextMate中使用Ctrl键,按住Shift进行访问。):

  • <% %>只是评价的内容。
  • <%= %>评估内容并放置结果。
  • <%= -%>评估内容并打印结果。
  • <%# %>内容被视为注释而不是输出。

请注意区别putsprint。总是在字符串的末尾添加一个新行,而打印不会。

基本上,-%>表示在最后不输出新行。

1

晚了一点,但我认为这是值得指出的是,你也可以这样做:

<%- @posts.each do |post| -%> 
    <li><%= post.title %></li> 
<%- end %> 

这除掉前面任何空白。

相关问题