Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从最新到最旧订购记录?_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何从最新到最旧订购记录?

Ruby on rails 如何从最新到最旧订购记录?,ruby-on-rails,ruby,ruby-on-rails-3,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 } 我正在从数据库中获取我所有朋友的状态,并将它们放在墙上。 我试着让他们从新的(顶部)到旧的(底部),现在就买,反之亦然。请告诉我如何更改它。无需预先声明数组,也无需在另一行上后期

这是我的代码:

@statuses = []
current_user.friends.each do |f|
  @statuses = @statuses + f.statuses 
end
@sorted_statuses = @statuses.sort_by { |obj| obj.created_at }
我正在从数据库中获取我所有朋友的状态,并将它们放在墙上。
我试着让他们从新的(顶部)到旧的(底部),现在就买,反之亦然。请告诉我如何更改它。

无需预先声明数组,也无需在另一行上后期处理。可以通过数据库进行排序。ruby方法是:

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

无需预先声明数组,也无需在另一行上后期处理。可以通过数据库进行排序。ruby方法是:

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

您甚至可以使用定义模型中的默认顺序

class-Person
您甚至可以使用

class-Person
It's not working,im not get in error,但它仍然是从旧到新的。允许数据库进行排序还意味着,如果结果的数量大于您真正想要返回的数量,您可以限制从数据库返回的结果的数量,并且仍然确保您拥有最新的结果。It's not working,我没有犯错误,但仍然是从旧到新。允许数据库进行排序也意味着,如果结果的数量大于您真正想要的数量,您可以限制从数据库中返回的结果的数量,并确保您拥有最新的结果。