如何订购从最新到最旧的记录?

时间:2011-06-17 13:25:43

标签: ruby-on-rails ruby ruby-on-rails-3

这是我的代码:

@statuses = []
current_user.friends.each do |f|
  @statuses = @statuses + f.statuses 
end
@sorted_statuses = @statuses.sort_by { |obj| obj.created_at }

我从数据库中取出了所有朋友的状态并将它们放在墙上。 我试图从新的(在顶部)到旧的(在底部)显示它们,现在买它反之亦然。请让我知道如何更改它。

2 个答案:

答案 0 :(得分:6)

无需预先声明数组,也无需在另一行上发布进程。订购可以通过数据库完成。红宝石的方式是:

@statuses = current_user.friends.order('created_at DESC').collect {|f| f.statuses}

答案 1 :(得分:0)

您甚至可以使用default_scope

在模型中定义默认顺序
class Person < ActiveRecord::Base
  default_scope order('last_name, first_name')
end