2011-06-12 62 views
0

假設我有兩個Rails的ActiveRecord的車型CarType(使/型號的汽車)和汽車(一CarType的實例)。 汽車* belongs_to * CarType和CarType * has_many *汽車。鑄造一個ActiveRecord的集合,從一種類型到另

我想要一個汽車列表,但只有獨特的CarTypes(結果中沒有重複的CarTypes)。

基本上,我想要的結果:

CarType.find(:all, :include => [:cars]) 

...但鑄成汽車的集合對象,而不是。我怎樣才能做到這一點?

編輯

我開始執行上述CarType.find聲明解決這個,逆向工程Rails的生成的SQL代碼(Rails的實際產生兩個SQL語句),然後使用Car.find_by_sql,但我覺得解決方案變得非常笨重。

+0

所以你想每個CarType只檢索一輛車? – bassneck 2011-06-12 21:20:55

+0

是的,正確的:每個車型只有一輛車。側面問題:排序順序會影響哪個Car(因爲可能會有多個)會爲每個CarType選擇? – 2011-06-12 21:23:24

回答

1

我認爲,Cars.group("cartype_id")是你在找什麼。並回答你的問題,afaik排序適用於羣組之後。

+0

差不多!這解決了它:'Car.find(:all,:include => [:car_type],:group =>:car_type_id)'。謝謝@bassneck! – 2011-06-13 18:22:32

+0

有趣......我在我的項目上檢查了我的代碼,它工作。但無論如何,很高興你把它整理出來。乾杯:) – bassneck 2011-06-13 19:39:10

相關問題