在我的rails应用程序中,我创建了如下数组:

@messages.each do |message|

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

制作完这个数组后,我想按时间顺序对它进行排序,可以吗?

推荐答案

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

它默认为ASC,但是,如果需要DESC,可以执行以下操作:

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

此外,你似乎正在try 从@messages个列表中构建列表.你可以简单地做:

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

Ruby-on-rails相关问答推荐

Ruby线程使用互斥处理并发问题

Rails TurboStream:可以向元素动态添加一个css类吗?

搜查升级到 4.0.0 和 ActionText::RichText

是否可以使用 Turbo 帧更新 Rails 表单输入字段值?

ArgumentError 用于 Ruby on Rails 中非常简单的初始化方法,没有参数

键入rails 控制台无法启动?

您将如何在 Ruby on Rails 应用程序中使用 rSpec 测试观察者?

rails 3:将链接显示为按钮?

FactoryGirl 和 Rspec 测试中 attributes_for 的含义

为什么使用 HTTP PUT 和 DELETE 方法而不是 POST?

添加自定义字段/列以使用 Rails 4 进行设计

Rails 4网站图标问题

.increment vs += 1

获取磁盘上 ActiveStorage 文件的路径

如何在 Ruby 中生成随机日期?

在 Rails 生产中禁用assets资源 缩小

确认后如何进行设计重定向

您推荐哪些工具来分析 Rails 应用程序?

Ruby on Rails Bootstrap Glyphicons 不工作

是否可以输出rake db:migrate产生的 SQL 更改脚本?