我正在尝试找到计算拥有一个(或多个)has_many 关系实例的用户数量的最佳方法。
例如,用户has_many :bank_accounts
和:credit_accounts
(以及其他一些关系)。我想找到至少拥有一个 bank_account 和至少一个 credit_account 的唯一用户的数量,并理想地在一个范围内实现这一点,这样我就可以在其上运行 where 查询。
目前我正在使用以下代码实现它(很差):
(BankAccount.select(:user_id).uniq + CreditAccount.select(:user_id) + ...).uniq.count
我已经玩了很多连接,但是我没有得到任何结果。例如,我玩弄了很多不同形式的,User.joins(:bank_accounts, :credit_accounts).uniq('users.id').count
但我似乎没有得到任何结果。
任何帮助将不胜感激,谢谢!