2012-06-25 2 views
0

я часть и линейка присоединился piece_lineupкак заказать список, основанный на атрибуте РЕГИСТРИРУЙТЕСЬ модели

piece_lineup это имеет много через отношения соединения и имеет «позицию» атрибут

как бы я сортирую список частей, основанный на их связанном атрибуте позиции в модели объединения.

благодаря

ответ

0

Попробуйте это:

class Piece < ActiveRecord::Base 
    has_many :piece_lineups 
    has_many :lineups, :through => :piece_lineups, 
      :order => "piece_lineups.position" 
end 

Теперь piece.lineups сортируется в соответствии с ваше требование.

+0

Вы имеете в виду линейку.pieces? вот что я пытаюсь заказать –

0

Я думаю, что это может сделать прямо сейчас:

Piece.joins(:piece_lineups).order("piece_lineups.some_attribute DESC") 

Если вы просто хотите, порядок частей в соответствии с «атрибут», затем «присоединяется» лучше.

Если вы хотите, это модель вместо этого, то вам нужно всего лишь:

class Piece < ActiveRecord::Base 
    has_many :lineups, :order => 'lineups.postion' 
end 
+0

Это вводит сортировку по умолчанию в набор штук_лайн, принадлежащих определенной части. Вместо этого он хочет самостоятельно сортировать куски, используя атрибут position_types. – cdesrosiers

+0

@cdesrosiers Спасибо. Непонятно. Пересмотрен мой ответ. –

+0

@MatthewBerman Обновлен мой ответ, чтобы решение находилось в пределах модели. –

0

Попробуйте

Piece.includes(:piece_lineups).where('some condition').order('piece_lineups.position') 
Смежные вопросы