複数のユーザーを持つアカウントのコレクションを取得できます。
Account.group('accounts.id HAVING count(users.id) > 1').joins(:users)
しかし、そのオブジェクトで .count を呼び出すとすぐに、大爆発が起こります。
(0.3ms) SELECT COUNT(*) AS count_all, accounts.id HAVING count(users.id) > 1 AS accounts_id_having_count_users_id_1 FROM "accounts" INNER JOIN "users" ON "users"."account_id" = "accounts"."id " GROUP BY accounts.id HAVING count(users.id) > 1 ActiveRecord::StatementInvalid: PG::Error: エラー: "AS" またはその近くで構文エラーが発生 行 1: ...unt_all, accounts.id HAVING count(users .id) > 1 AS アカウント...
postgres では、私が望む実際のクエリは次のようです。
select count(*) from (SELECT accounts.id FROM "accounts" INNER JOIN "users" ON "users"."account_id" = "accounts"."id" GROUP BY accounts.id HAVING count(users.id) > 1) as a;
この(または同等の)クエリを生成するためにactiverecordを取得するにはどうすればよいですか?