我一直在試圖改變我的循環來減少而不是增加。我已經嘗試過的任何東西都在工作,請有人幫助我。在Ruby on Rails中減少循環
<% @orders.each do |order| %>
#code
<% end %>
由於
我一直在試圖改變我的循環來減少而不是增加。我已經嘗試過的任何東西都在工作,請有人幫助我。在Ruby on Rails中減少循環
<% @orders.each do |order| %>
#code
<% end %>
由於
完美。謝謝 – baihu
這比'@ orders.reverse.each'還要好,以防有人考慮到這一點。至少在MRI上,'reverse_each'被實現爲從數組末尾開始計數的循環,而'reverse.each'創建了一個新數組,然後遍歷它(因此,'reverse_each'大致爲O( n),而'reverse.each'大致是O(2n)(免責聲明:我實際上不知道大O符號,所以這可能是完全錯誤的))。 – henrikhodne
你可能要考慮
@orders = Order.where(whatever: 'something').order('created_at DESC')
上面,我們通過created_at
字段排序的@orders
。你可以使用你喜歡的任何領域進行排序。然後你可以正常迭代
<% @orders.each do |order| %>
yay!
<% end %>
爲什麼這會被降低? LEL – naomik
問題是你不明白'each'的作用。它遍歷你的'@ orders'數組的內容,從第一個元素到最後一個元素。爲了向後走這個列表,你必須以某種方式反轉列表。 Array文檔很好地涵蓋了這一點。 –