我通过联接表有多对多的关系:
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#index
和cards#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)
,但可能会对以下排序产生影响。
非常感谢任何帮助。
非常感谢你。