私は次の関係を持っています:
Category has_many :posts
Post has_many :comments
Post has_many :commenters, :through => :comments
次の熱心な負荷があり、投稿、コメント、およびコメントを提供しています (3 つすべてが必要であるため、結合ではなくインクルードが必要であることに注意してください)。
category.posts.includes(:comments, :commenters)
ただし、同じ一連の投稿を返しながら、コメント (および可能であればコメント投稿者) を過去 2 週間以内に作成されたコメントのみに制限したいと考えています。最初は、インクルードの条件を指定できると思っていました:
category.posts.includes(:comments, :commenters).where("comments.created_at > ?", 2.weeks.ago)
しかし、これは条件を満たす投稿のみを返すことがわかりました。コメントに対してサブクエリを実行してから結合を実行するようなことをする必要があるかもしれないと考えています。ARでこれを行う簡単な方法はありますか?SQLでこれを行うほうがよいでしょうか?