2012-09-08 199 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")在数据库端进行分类?