2008-11-21 126 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 %> 

這除掉前面任何空白。

相關問題