activerecord记录不在:through条件中

时间:2013-08-16 10:23:15

标签: activerecord

我需要获取的记录不在:通过条件。

我有3张桌子:

class A < ActiveRecord::Base
  has_many :B_A
  has_many :B, through: :B_A
end
class B < ActiveRecord::Base
  has_many :B_A
  has_many :A, through: :B_A
end
class BA < ActiveRecord::Base
  belongs_to :A
  belongs_to :B
end

我通过listOfA = B.A将所有A链接到特定B,但我还需要将所有A链接到任何B.不管怎样我怎么办?

1 个答案:

答案 0 :(得分:0)

好的,我有两个条件要放入我的连接查询。 我的MySql是:

select a.`id`, a.`label`
from `A` a
left join `BA` ba
on a.`id` = ba.`a`
where a.`uid`='userId'
and ba.`a` is null

我的activeRecord现在是:

A.select(['A.id', :label])
  .joins('left outer join B_A on B_A.a_id = A.id')
  .where({ user_id: current_user.id, "B_A.a_id" => nil })

我的所有A都不在BA