Связанные с областью модели с помощью created_at

У меня есть три модели: пользователь, продукт и право собственности. Право собственности имеет product_id:integer и user_id:integer. Я хочу ограничить свои продукты created_at DESC.

app/models/product.rb

        .
        .
        .
default_scope -> { order('products.created_at DESC') }
        .
        .
        .

Но когда я делаю user.owned_products, это не упорядочено, как created_at DESC. Как я могу это сделать ? Должен ли я добавить область действия в свою пользовательскую модель?

Вот отношения между моими пользователями и продуктами:

приложение/models/user.rb

        .
        .
        .
has_many :ownerships
has_many :owned_products, through: :ownerships,
                          source: :product
        .
        .
        .

person Flo Rahl    schedule 22.06.2013    source источник


Ответы (1)


Чтобы установить порядок продуктов, принадлежащих пользователю, вы можете указать это в ассоциации. Например:

has_many :owned_products, through: :ownerships,
                          source: :product,
                          order: "created_at DESC"
person Alisdair McDiarmid    schedule 22.06.2013
comment
Спасибо, это работает ! Но этот метод устарел, мы должны использовать что-то вроде has_many :owned_products, -> { order "created_at DESC" }, through: :ownerships, source: :product. - person Flo Rahl; 22.06.2013