2
我的應用程序具有可排序列的表。列可以根據當前模型的屬性或甚至相關模型進行排序。但是,在某些情況下,模型與另一個模型有多重關聯。排序關係屬性上的查詢
在此示例中,節具有多個關係,必須將它們一起加載。 relation1和relation2實際上是來自同一個數據庫表的記錄。如果我運行查詢並嘗試對老師進行排序,它實際上會對學生進行排序,因爲他們來自同一個表,這就是用於排序的內容。
Section.includes(:teacher, :students)
.order(sort_column + ' ' + sort_direction)
產生這個SQL:
SELECT DISTINCT `sections`.id
FROM `sections`
LEFT OUTER JOIN `sections_students` ON `sections_students`.`section_id` = `sections`.`id`
LEFT OUTER JOIN `users` ON `users`.`id` = `sections_students`.`user_id`
LEFT OUTER JOIN `users` `teachers_sections` ON `teachers_sections`.`id` = `sections`.`teacher_id`
ORDER BY users.first_name asc LIMIT 30 OFFSET 0
我如何排序在一個特定的關係?有沒有辦法使用別名來做到這一點?