2014-01-20 6 views
0

Скажем, у меня есть 2 модели, категории и статьи; учитывая следующую ассоциацию:Установка порядка по умолчанию для ассоциации модели

Категория has_many :articles .. и статья belongs_to :category

Если я .. Article.all я получаю массив обратно в порядке ASC.

Теперь Rails позволяет мне запрашивать статьи категории с помощью: Category.find(:id).articles ... но при этом я получаю массив обратно в порядке DESC .. есть способ переопределить поведение по умолчанию этого, чтобы я мог заказать этот массив, используя столбец x в таблице статьи, без необходимости связывать .order ('column_name') везде, где я это делаю?

Надеюсь, что это имеет смысл, спасибо.

ответ

2

Вы можете указать заказ при определении ассоциации.

class Category < ActiveRecord::Base 
    has_many :articles, :order => "updated_at DESC" 
end 

Для Article.all «s заказ, вы можете определить default_scope

class Article < ActiveRecord::Base 
    default_scope { order('updated_at DESC') } 
end 
+0

Я чувствую тупую ха-ха; конечно, должно быть так просто! благодаря! – user3206458

Смежные вопросы