在rails中查询和管理多对多关系

时间:2013-09-16 12:32:43

标签: sql ruby-on-rails many-to-many

我的应用程序中有以下具有用户结构的简单组:

class Account < ActiveRecord::Base
  has_many :account_membership
end

class Group < ActiveRecord::Base
  has_many :account_membership
end

class AccountMembership < ActiveRecord::Base
    belongs_to :account
    belongs_to :group
end

我现在有了一个帐户列表,并希望获得包含所有这些帐户的组(并且只有那些帐户)。

有什么方法可以用ActiveRecord查询来完成它,或者我必须用SQL做它?

1 个答案:

答案 0 :(得分:2)

@accounts_list = Account.all # for example
Group.joins(:account_membership).where(account_membership: {account_id: @accounts_list.pluck(:id)})