2012-08-28 119 views

回答

3

我將使用小寫字母來代替:

a_instances.sort_by{|a| [a.b.y, a.x]} 
+0

謝謝,但無論如何創建一個默認範圍,所以它會自動排序? – rhfannnn

4

可以使用default_scope通過關聯下令所有的模型實例。你只要通過相關的型號名稱爲:includes PARAM和調整您的訂單PARAM:

default_scope :include => 'record', :order => 'records.attribute'

然而,default_scope不值得推薦。一個清潔的方法是建立在你的父模型類方法,你可以從你的控制器撥打:

def self.all_ordered_by_child 
    includes(:records).order('records.attribute DESC') 
end 

你只需要更新調用所有記錄從父模型的所有實例。