0

我有一个有 2 列的表。“车”“年”。我想收集所有汽车的数组,然后按年份对它们进行排序。我怎么做?

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

我需要按年份订购@cars 数组的步骤,请记住我没有将年份值保留在@cars 数组中,而只是汽车。提前致谢。

4

2 回答 2

3

从代码示例中,我猜您正在使用 Ruby on Rails。如果是,我建议您允许您的数据库对结果进行排序。例如:

@cars = Card.order("year").all
于 2012-09-08T22:22:44.553 回答
0

使用sort

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

为什么要删除您希望排序的信息,然后按该信息排序?只需将信息保留在数组中即可 - 无需删除它。另外,您需要它进行排序。

也就是说,为什么不使用在数据库端对其进行排序order("year")

于 2012-09-08T22:23:32.167 回答