ユーザーモデルと認証モデルがあります。User
has_many
Authentications
。_
「Facebook」という認証と「 LinkedIn 」という認証を持つすべてのユーザーをチェックするクエリを作成したいと思います。
2回参加しようとしましたが、うまくいきませんでした。
User.joins(:authentications).
where(authentications: {provider: 'facebook'}).
joins(:authentications).
where(authentications: {provider: 'linkedin'})
その結果、次のクエリが発生しました。結合の1つが削除されたようです:
SELECT "users".* FROM "users" INNER JOIN "authentications"
ON "authentications"."user_id" = "users"."id"
WHERE "authentications"."provider" = 'facebook' AND "authentications"."provider" = 'linkedin'
編集:
これは私にとってはうまくいきましたが、ユーザーテーブルに2回参加する必要がありましたが、これはやりたくないことです。
joins(authentications:{ user: :authentications }).where(authentications: {provider: 'facebook'}).where(authentications_users: {provider: 'linkedin'})