Rails 3 - ActiveRecord和反向排序

use*_*621 8 mysql database sorting ruby-on-rails-3 rails-activerecord

我在数据库中有以下数据:

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

我想输出这个:

3
4
5
Run Code Online (Sandbox Code Playgroud)

我需要它在视图中打印:

<%car.colors.limit(3).order('created_at ASC').each do |color|%>
  ...
Run Code Online (Sandbox Code Playgroud)

我知道存在reverse_order,但存在类似反向排序的东西?

(我知道可以将数据加载到数组中然后遍历数组,但这种方式效率不高)

Cho*_*ett 21

刚做的怎么样

<%car.colors.limit(3).order('created_at DESC').reverse.each do |color|%>
Run Code Online (Sandbox Code Playgroud)

  • @MattScilipoti - 但它给出了错误的答案.OP希望(前三个按降序排列),按升序打印.你会注意到我也使用数据库执行降序,但我看不到如何使用数据库将其恢复为升序显示. (3认同)

Jel*_*Cat 18

对于Rails 4:

[Model].order(column: :desc)
Run Code Online (Sandbox Code Playgroud)

对于Rails 3:

[Model].order("<column> DESC")
Run Code Online (Sandbox Code Playgroud)

对于Rails 2:

[Model].all(:order => "<column> DESC")
Run Code Online (Sandbox Code Playgroud)