Rails,Ruby,如何对数组进行排序? [英] Rails, Ruby, how to sort an Array?

查看:101
本文介绍了Rails,Ruby,如何对数组进行排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 rails 应用程序中,我正在创建一个数组,如下所示:

in my rails app I'm creating an array like so:

@messages.each do |message|

  @list << {
    :id => message.id,
    :title => message.title,
    :time_ago => message.replies.first.created_at
  }
end

制作这个数组后,我想按 time_ago ASC 顺序对其进行排序,这可能吗?

After making this array I would like to then sort it by time_ago ASC order, is that possible?

推荐答案

 @list.sort_by{|e| e[:time_ago]}

它默认为 ASC,但是如果你想要 DESC,你可以这样做:

it defaults to ASC, however if you wanted DESC you can do:

 @list.sort_by{|e| -e[:time_ago]}

此外,您似乎正在尝试从 @messages 构建列表.你可以简单地做:

Also it seems like you are trying to build the list from @messages. You can simply do:

@list = @messages.map{|m| 
  {:id => m.id, :title => m.title, :time_ago => m.replies.first.created_at }
}

这篇关于Rails,Ruby,如何对数组进行排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆