Il existe plusieurs façons de procéder :
Si vous voulez que tous les appels à cette association soient ordonnés de cette façon, vous pouvez spécifier l'ordre lorsque vous créez l'association, comme suit :
class Log < ActiveRecord::Base
has_many :items, :order => "some_col DESC"
end
Vous pourriez également le faire avec un named_scope, ce qui permettrait de spécifier facilement cette commande à chaque fois que l'on accède à Item :
class Item < ActiveRecord::Base
named_scope :ordered, :order => "some_col DESC"
end
class Log < ActiveRecord::Base
has_many :items
end
log.items # uses the default ordering
log.items.ordered # uses the "some_col DESC" ordering
Si vous souhaitez que les éléments soient toujours classés de la même manière par défaut, vous pouvez utiliser la méthode (nouvelle dans Rails 2.3) default_scope, comme suit :
class Item < ActiveRecord::Base
default_scope :order => "some_col DESC"
end