Rails按连接表行排序

时间:2014-06-14 18:03:17

标签: ruby-on-rails sorting join jointable

我通过联接表有多对多的关系:

team.rb

has_many :partners_teams
has_many :partners, through: :partners_teams

partner.rb

has_many :partners_teams
has_many :teams, through: :partners_teams

partners_team.rb

belongs_to :team
belongs_to :partner
self.primary_key = :partner_id
include RankedModel
ranks :row_order, with_same: :team_id
default_scope { order(row_order: :asc) }

我设置了另一行" row_order" join table teams_partners中的整数

合作伙伴是团队

的嵌套资源

当我从设计的卡片请求合作伙伴时,如何解决row_order列问题,该问题发生在partners#indexcards#show

目前,我这样做(它工作正常):

合作伙伴#index:

  def index
   @card = Card.find(params[:id])
   @partners = @team.partners.all
  end

小组#节目

def show
 @partners = @team.partners.all
end

我尝试了几个连接和包含但没有成功的东西。它的水平仍然有点复杂。

此外,我使用Harvest排名模型宝石来排序我的合作伙伴。除了初始顺序(上面描述的问题)之外,它似乎运行良好。事情是排名模型使用.rank()方法来订购事物。例如:Partners.rank(:row_order)。我不确定是否要考虑到这一点,我的意思是我可以使用Partners.order(row_order: :desc),但可能会对以下排序产生影响。

非常感谢任何帮助。

非常感谢你。

0 个答案:

没有答案