我是rails的新手,我有一个包含用户ID,团队ID和号码的联接表,基本上用户可以有很多团队,团队可以有很多用户,团队属于锦标赛,这些数字应该是每场锦标赛的唯一数字,我想要做的就是获得包含来自特定锦标赛的球队的所有排,基本上类似
MyJoinTable.where(team.tournament_id: self.team.tournament_id)
但是这不起作用,关于如何制作这个
的任何建议答案 0 :(得分:0)
基本上你有
class Team
has_and_belongs_to_many :members
belongs_to :tournament
end
class Member
has_and_belongs_to_many :teams
end
class Tournament
has_many :teams
end
然后tournament.teams
将产生所有锦标赛的球队。
如果您没有锦标赛实例,Team.where(tournament_id: an_id)
也可以使用。
加入/包括会员表就可以轻松获得所有锦标赛成员。
如果您的连接表包含的数据多于连接表的ID,则has_and_belongs_to_many应替换为has_many:through关系。请参阅docs。
答案 1 :(得分:0)
要实现您的目标,您可以这样做:
Team.joins(:tournaments).merge(Tournament.where(id: self.team.tournament_id))