如何根据连接模型的属性排序列表

时间:2012-06-25 03:51:22

标签: ruby-on-rails activerecord

我有片段和阵容加入了piece_lineup

piece_lineup是一个有很多通过关系连接并具有属性'position'

如何根据连接模型中的相关位置属性对片段列表进行排序。

感谢

3 个答案:

答案 0 :(得分:0)

我认为现在可能会这样做:

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

如果您只想根据'属性'获得片段的顺序,那么'加入'是最好的。

如果您确实希望这是模型,那么您只需要:

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

答案 1 :(得分:0)

尝试

Piece.includes(:piece_lineups).where('some condition').order('piece_lineups.position')

答案 2 :(得分:0)

试试这个:

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

现在根据您的要求对piece.lineups进行排序。