我正在尝试查找具有has_many关系的一个(或多个)实例的用户数的最佳方法。查找具有多个关联中的一个的用户数
例如,用户has_many :bank_accounts
和:credit_accounts
(和一些其他关系)。我想查找具有至少一个bank_account和至少一个credit_account的唯一用户的数量,并理想地在一个范围内实现此操作,以便我可以在其上运行查询。
目前我使用下面的代码实现它(很差): (BankAccount.select(:user_id).uniq + CreditAccount.select(:user_id) + ...).uniq.count
我周围很多玩一些连接,但是我没有得到任何结果。例如,我玩过很多不同形式的User.joins(:bank_accounts, :credit_accounts).uniq('users.id').count
,但我似乎没有得到任何结果。
任何帮助将不胜感激,谢谢!
我玩了很多像你提到的一个查询,但从来没有得到它的工作。 (User.joins(:credit_accounts).uniq.count)返回0. User.joins .count'返回0,尽管有一个CreditAccount。 –