你有两个型号(Rails3)
阿姨 朋友
哪里
阿姨:has_many =>朋友
和
朋友:belongs_to =>阿姨
现在,我希望得到所有与朋友X无关的阿姨
我尝试过类似的事情:
Aunt.includes(:friends).where('friends.id!=?',X)
但它不起作用。
PS:我还需要包含没有任何朋友关联的阿姨。
这是:
的输出@results = Aunt.custom(true).select('aunts.id, aunts.goal').joins("LEFT OUTER JOIN friends r ON aunts.id = r.aunt_id").where('r.other_value != ? or r.id is NULL', 4259 ).ordered_by_status_creation.select('aunts.id, aunts.goal')
SELECT aunts.id,aunts.goal FROM
aunts
LEFT OUTER JOIN friends r ON aunts.id = r.aunt_id WHEREaunts
。deleted_at
IS NULL ANDleads
。type
IN('MyType')AND(is_custom = 1)AND(r.another_value != 4259或r.id为NULL)ORDER BY status desc,aunts.id desc
有什么想法吗?
答案 0 :(得分:0)
我认为你需要这样的东西:
Aunt.joins("LEFT OUTER JOIN friends ON aunts.id = friends.friend_id").where('friends.id != ? or friends.id is NULL', X ).select
答案 1 :(得分:0)
你可以使用范围如下
范围:without_house,lambda {| param |帕拉姆? {:conditions => [“related_id!=?”,param.id]}:{}}