Ich habe die folgenden Beziehungen:eine Bedingung auf einem Putting enthält
Category has_many :posts
Post has_many :comments
Post has_many :commenters, :through => :comments
Ich habe folgende eifrig Last, mir Beiträge zu geben, Kommentare und commenters (beachten Sie, dass ich alle 3 benötigen, und damit die beinhaltet im Gegensatz zu
category.posts.includes(:comments, :commenters)
, ich würde jedoch Joins) gerne Kommentare begrenzen (und nur auf dem in den letzten zwei Wochen noch erstellt, wenn möglich commenters), während die gleiche Menge der Beiträge zurück. Anfangs dachte ich, ich eine Bedingung angeben, könnte man auf die beinhaltet:
category.posts.includes(:comments, :commenters).where("comments.created_at > ?", 2.weeks.ago)
aber festgestellt, dass dies gibt nur die Beiträge, die die Bedingung erfüllen. Ich denke, dass ich etwas tun muss, etwa eine Unterabfrage für Kommentare auszuführen und dann einen Join durchzuführen. Gibt es einen einfachen Weg, dies mit AR zu tun, wäre ich besser dran mit sql?
Wenn Ihr Problem "gelöst" ist, akzeptieren Sie bitte die Antwort, die Ihr Problem gelöst hat oder schreiben und akzeptieren Sie eine Antwort, wie Sie das Problem gelöst haben –