我有类(class) Job
:
class Job < ActiveRecord::Base
has_many :stops
end
Stop
类有一个属性,datetime :arrival time
获取所有作业的数组的简洁方法是什么,并按相关站点的最早到达时间排序?
例如
如果 job_1 有两个站点,一个到达时间为下午 4 点,另一个到达时间为下午 5 点。
job_2 有两站,一站到达时间为下午 3 点,另一站到达时间为下午 6 点。
我需要数组:[job_2, job_1]
我能够实现这一点,但是采用了一种繁琐的方式,涉及循环和临时存储值。
谢谢!
最佳答案
这是个好问题! Francesco 的回答应该是你要去哪里,但如果你更喜欢使用连接而不是子系列,你还有其他一些选择。
Job.includes(:stops).order('stops.arrival_time ASC')
如果您想忽略没有任何停靠点的作业,请将 includes
替换为 joins
关于ruby-on-rails - 创建一个根据子类的属性排序的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30123939/