我對我來說似乎有一個簡單的要求:我想根據其子類的屬性對父類進行排序。如何基於子類的屬性對父類進行排序?
class owner
has_many :tasks
end
class task
belongs_to :owner
end
現在我想根據自己的任務的截止日期業主進行排序,使具有與「最近的」截止日期的任務所有者是第一等
我能做到這一點在Ruby中有數組排序的,但我的記錄集是巨大的,我需要用AR/DBMS做到這一點..
UPDATE:
正如我琢磨解決的這個問題,一部分發生在我身上,但我不知道如何在AR中實現。
要根據任務對所有者進行排序,只有一個任務(每個所有者)是相關的,即具有最近到期日的任務。
我該如何使用AR來取我所有的業主,按他們的任務排序,並且距離最近?
更新2:
Task.order("due_date DESC").maximum("due_date", :group => 'owner')
將實際上給我的主人的對象,以正確的順序排序爲有序散列([所有者] => 「DUE_DATE」)的一部分。萬歲!現在唯一的問題是,我如何告訴AR用所有者對象預先加載所有相關的任務。因爲在這一刻它每次發出查詢我打電話
owner.tasks.each do |t|
在我看來。
讚賞任何幫助,我要堅果與此(簡單?)問題,
歐文
能否請您粘貼在這裏生成SQL?謝謝。 – 2011-04-05 15:29:23
謝謝。但是我認爲這個查詢在Postgres中不起作用。 – 2011-04-05 21:53:37
查詢正在工作,但順序錯誤。 – hlcs 2016-09-08 10:43:20