在我的Rails 4应用程序中,我有两个模型:
ChallengeList
和Challenge
和
Challenges
有很多ChallengeList
,反之亦然(多对多)。
我想创建一个范围,以便选择那些与特定ChallengeList id无关的挑战。但是我无法让它发挥作用!
我尝试过以下方法
joins(:challenge_lists).where("challenge_lists.id != ?", id)
但是,这不会选择与任何挑战列表无关的项目,只会选择那些 ,并且没有该特定ID的项目。
我该如何解决这个问题?
答案 0 :(得分:2)
听起来你需要左连接。如果是这样,请尝试以下方法:
joins(
'left join challenge_lists on challenges.id = challenge_lists.challenge_id'
).where(
'challenge_lists.id != ?', id
)