has_many 関係の 1 つ (または多数) のインスタンスを持つユーザーの数を数える最良の方法を見つけようとしています。
たとえば、ユーザーhas_many :bank_accounts
と:credit_accounts
(およびその他のいくつかの関係)。少なくとも 1 つの bank_account と少なくとも 1 つの credit_account を持つ一意のユーザーの数を見つけ、理想的にはこれをスコープ内に実装して、where クエリを実行できるようにしたいと考えています。
現時点では、次のコードを使用して(不十分に)実装しています。
(BankAccount.select(:user_id).uniq + CreditAccount.select(:user_id) + ...).uniq.count
私はいくつかの結合でたくさん遊んできましたが、結果が得られません。たとえば、さまざまな形式でいろいろいじりましたがUser.joins(:bank_accounts, :credit_accounts).uniq('users.id').count
、結果が得られていないようです。
どんな助けでも大歓迎です、ありがとう!