我有Job
类:创建对象的数组基于下令子类的属性
class Job < ActiveRecord::Base
has_many :stops
end
Stop
类有一个属性,datetime :arrival time
什么是一个简洁的方式来获得数组所有工作,按相关站点的最早到达时间排序?
例如
如果job_1有两个站点,一个到达时间为下午4点,另一个到达时间为下午5点。
而job_2有两个站点,一个到达时间为下午3点,另一个到达时间为下午6点。
我需要的array: [job_2, job_1]
我能够做到这一点,但在一个麻烦的方式,其中涉及循环和临时存储值。
谢谢!
由于就业机会,这是伟大的。我实际上会使用下面的解决方案,因为我可以将这种排序应用于任何任务子集,但是您首先得到培根:) – user3711600
您的解决方案在我的操场中不起作用,我发布我的工作版本以完成回答:'Stop.all.order(arrival_time :: asc).select(:job_id).distinct'。并且不返回像op所要求的一系列作业,而是返回一系列停靠点。无论如何,答案是好的。 –
我得到一个错误ActiveRecord :: StatementInvalid:PG :: UndefinedColumn:错误:列“作业”不存在 –