has_and_belongs_to_manyで関連付けられた2つのモデルのユーザーと会社があります。 私は特定の会社に属していないすべてのユーザーを見つけることですRails/Active Record has_and_belongs_to_many association - レコードを取得する
Company.find(id).users
私がきた問題を使用して特定の企業に属するすべてのユーザーを取得することができます。まあ、私は
User.all - Company.find(id).users
を使用してしかし、私はこれを達成するためのより良い方法は確かにあります感じていることを行うことができます。これにはactiverecordの解決策がありますか?
現在、8人のユーザーがいます(1〜8のID)。試してみると、期待通りの結果[7、8]が出ます。
User.joins(:companies).where('companies.id = ?', 13).map(&:id)
上記のクエリに=を配置すると、結果は1〜6の配列になります。
助けが必要です。おかげさまで
返信いただき、ありがとうございました。しかし、これは各ユーザ、すなわち私の場合に合計8つのクエリに対するクエリを発生させる。私は、照会される照会の数が気になるはずです。回避策はありますか? – prasvin
ええ、私はその提案でかなり厳しいn + 1クエリーをヒットしました...私は編集しました、新しいバージョンを試してください...より効率的です。 –