Railsでhas_many throughのモデルの条件で検索するには


以下のような関係にあるモデルがあります。

`Group -< GroupUser >- User`

`Group` に `User` が所属できます。

「`ユーザーA`と`ユーザーB`と`ユーザーC` "のみ" が所属している`Group`を検索するにはどのように書くべきでしょうか？

今は`Group`を1つ1つ確認している状態で非常に効率が悪いです。

よろしくお願いします。

  * Rails 5.1.3
  * ActiveRecord 5.1.3




@naopontan さんもおっしゃっていますが、 `group_users` テーブルに対して検索を行う方が早いと思います。

[code]

    class UserGroup < ApplicationRecord # GroupUser が rails に取られてたので、これで代用
      self.table_name = 'group_users'
    end
    
    UserGroup
      .select(:group_id)
      .where(user: [user_a, user_b, user_c])
      .group(:group_id)
      .having('count(user_id) = 3')
    
[/code]

