2

過去7日以内に作成されたこのCountレコードを見ましたが、COUNTの構文を正しくするために、まだいくつかの助けが必要です。

@count_users = User.count('comment')

これにより、すべてのコメントの数がわかりますが、過去7日間または過去1か月にのみ行われたすべてのコメントの数を知る必要がありますが、正しい構文を理解できません。

4

1 に答える 1

4

このカウント:

@count_users = User.count('comment')

次のSQLを生成します。

SELECT COUNT(comment) FROM "users"

したがって、usersテーブルにコメント列がない限り、適切なオブジェクトはカウントされません

コメントモデルをお持ちの場合は、以下を使用して、過去7日間に作成されたすべてのコメントをカウントできます。

Comment.where('created_at >= ?', Time.zone.now - 7.days).count # count for a week
Comment.where('created_at >= ?', Time.zone.now - 1.months).count # count for a month

特定のユーザーのコメントをカウントする場合は、これを使用できます(コメントがユーザーに属し、ユーザーがコメントを持っていると仮定します)。

Comment.where(user_id: user.i).where('created_at >= ?', Time.zone.now - 7.days).count
于 2013-01-31T14:33:01.907 に答える