在rails 3项目上:
我的比赛有很多比赛。每场比赛将有2场比赛,比赛正在等待(真/假)。
我需要所有比赛,所有比赛都没有等待。
我可以在一场比赛失败时获得比赛:
scope :confirmed, joins(:competitions).where("pending = ?", false)
但那还不够好。
如果我需要显示更多代码,请告诉我。谢谢你的时间!
答案 0 :(得分:0)
如果从对象域可行,则可以创建两个不同名称的1:1关联。
如果没有,您可以使用sql查询来查找match_ids:
Match.find_by_sql(%q{SELECT * FROM "matches" WHERE id IN (SELECT "match_id" FROM "competitions" WHERE ("pending" = 'f') GROUP BY "match_id" HAVING COUNT(*) > 1)})
但这也取决于每场比赛最多有2场比赛。