2012-02-21 46 views
0

是否有這樣做的以下簡寫:但每一個新建項目

<% @ticket.notes.each do |n| %> 
    <% if n != @ticket.notes.last %> 
     <div class="note"> 
     <p class="author">Note by <b>n.user.name</b></p> 
     <p class="time"><%= time_ago_in_words(n.created_at) %></p> 
     <p class="copy"><%= n.content %></p> 
     </div> 
    <% end %> 
    <% end %> 

所以沒有必要檢查項目是最後一個項目。

回答

2

你應該事先slice the array

<% @ticket.notes[0..-2].each do |n| %> 
    <div class="note"> 
    <p class="author">Note by <b>n.user.name</b></p> 
    <p class="time"><%= time_ago_in_words(n.created_at) %></p> 
    <p class="copy"><%= n.content %></p> 
    </div> 
<% end %> 
+0

我看看這是什麼現在正在做的,從0拉出前一個的兩倍。 – 2012-02-21 17:19:38

+0

@Joseph:我不知道你的意思是「前一個」。它只是簡單地提取索引爲'0'到'-2'的元素(這是倒數第二個元素)。 – 2012-02-21 17:26:43

+0

我的意思是,我沒有意識到你可以使用落後指數 – 2012-02-21 17:33:56

0

您可以使用此:

 
    <% @ticket.notes[0..-2].each do |n| %> 
     <!--your html here--> 
    <% end %> 
相關問題