我從數據庫select中選擇一個數組(@tasks
),我想單獨顯示第一個數據,然後遍歷其他數據。從所有其他使用rails分離數組中第一條記錄的最佳方式是什麼?
數組中總會有一個項目,但可能有或不可以多於一個。
什麼是最好的方式來顯示第一個,然後循環通過任何剩餘的項目,如果還有更多?
我以爲在前些日子我發現了類似的東西,但我似乎無法再找到它。
感謝
我從數據庫select中選擇一個數組(@tasks
),我想單獨顯示第一個數據,然後遍歷其他數據。從所有其他使用rails分離數組中第一條記錄的最佳方式是什麼?
數組中總會有一個項目,但可能有或不可以多於一個。
什麼是最好的方式來顯示第一個,然後循環通過任何剩餘的項目,如果還有更多?
我以爲在前些日子我發現了類似的東西,但我似乎無法再找到它。
感謝
1.9.3-p327 > a = [1,2,3]
=> [1, 2, 3]
1.9.3-p327 > first, *the_rest = *a
=> [1, 2, 3]
1.9.3-p327 > first
=> 1
1.9.3-p327 > the_rest
=> [2, 3]
然而,在上述情況下,如果a = [1]
然後the_rest
最終會被nil
(至少在Ruby 1.9的,不知道約1.8)
你也使用.shift
刪除第一個元素是這樣的:
1.9.3-p327 > first = a.shift
=> 1
1.9.3-p327 > first
=> 1
1.9.3-p327 > a
=> [2, 3]
1.9.3-p327 >
很簡單。您可以使用此:
first = @tasks.first
其他:
others = @tasks[[email protected]]
顯示上圖:
<%= @tasks.first %>
<% @tasks[[email protected]].each do |task| %>
...
<% end %>
雖然我爲'@tasks [1 ..- 1]'交換了'@tasks [1 .. @ tasks.length]',但這工作得很好。謝謝。 – user1116573
@ user1116573你可以自由地做你感覺舒服的事,謝謝接受:) – Thanh
我很欣賞的答覆。你的第一個例子的語法對我來說看起來有點高級,而且不太可讀(至少對我來說)。第二個是有道理的,但不太適合我的視圖代碼。 – user1116573
我一直在尋找更好的事情。你能指出我關於你的第一個方法的文檔的方向,所以我可以閱讀它嗎? – user1116573
Google「ruby splat operator」... https://www.google.com/search?q=ruby+splat+operator –