2012-09-08 201 views
0

我有一個2列的表。 「車」「年」。我想收集所有汽車的數據,然後按年排序。我怎麼做?紅寶石 - 訂購數組

<% @cars_pre = Car.find(:all) %> 
<% @cars = @cars_pre.collect {|x| x.car} %> 

我需要按年訂購@cars數組的步驟,請記住我不會在@cars數組中保留年份值,只是汽車。提前致謝。

回答

3

從代碼示例中,我猜你正在使用Ruby on Rails。如果你是,我會建議你讓你的數據庫來訂購結果。例如:

@cars = Card.order("year").all 
+1

你甚至不需要在這個鏈條中的「全部」。 –

+0

@cars_pre = Car.order(「year DESC」)。all - 這工作謝謝。 –

0

使用sort

@cars.sort_by!(:year) # in-place sort 

爲什麼刪除由您要進行排序,然後通過這些信息進行排序的信息呢?只需保持數組–中的信息不需要刪除它。另外你需要它的排序。

這就是說,爲什麼不使用order("year")在數據庫端進行分類?