3

私は Rails 3.2 アプリを構築しています。このアプリでは 2 つのテーブル (postgres) を取得しました。1 つはユーザーと呼ばれ、もう 1 つはメッセージと呼ばれます。

メッセージ テーブルには、user_id という列があります。各ユーザーが作成したメッセージの数を取得してリストに表示できるようにする必要があり、100 を超えるメッセージを作成したメッセージのみを取得する必要があります。これが 1 回の呼び出しで実行できれば完璧です。

これはこれまでの私のコードで、各ユーザーが作成したメッセージの数を取得するために機能しますが、100 を超えるメッセージを持つメッセージのみを取得する必要があります。

@messages = Message.group("user_id").order("count_all DESC").count
4

1 に答える 1

6

試す:

@messages = Message.count(:all, :group => 'user_id, HAVING COUNT(*) > 100')

または

@messages = Message.group('user_id').having('COUNT(*) > 100').count
于 2012-10-18T11:18:27.553 に答える