Customer has_many Shifts through Jobs
Shifts belong_to Truck
Trucks belong_to Fleet
我试图衡量客户已预订的前5名使用最多的fleets
,以及班次数。理想情况下,我会得到Fleet A: X shifts
等等。基于has_many模型列的结果计数的Rails查询
我尝试过使用customer.shifts.joins(:fleets).select('*, count(shifts.fleet_id) as fleet_count').order('fleet_count desc')
,但我并不真正知道该去哪里,除了手动循环遍历客户的所有班次以找到使用最多的车队。
在此先感谢您的任何见解!
没有太深入这个问题(抱歉吃午饭),因为这基本上听起来像它需要在需要时是最新的,而不是通过递归方法调用。您可能希望将此逻辑驻留在数据库中,并在更新换班时通过触发器更新列。但是,数据库级逻辑引入了其他维护/升级问题,所以... YMMV – engineerDave