Есть несколько способов сделать это:
Если вы хотите, чтобы все вызовы этой ассоциации были упорядочены таким образом, вы можете указать порядок при создании ассоциации следующим образом:
class Log < ActiveRecord::Base
has_many :items, :order => "some_col DESC"
end
Вы также можете сделать это с named_scope, что позволит легко указывать этот порядок в любое время при обращении к элементу:
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
Если вы всегда хотите, чтобы элементы упорядочивались одинаково по умолчанию, вы можете использовать метод default_scope (новый в Rails 2.3) следующим образом:
class Item < ActiveRecord::Base
default_scope :order => "some_col DESC"
end