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