2011-02-02 13 views

Odpowiedz

13
Article.includes(:comments).where("articles.published_at <= ? and comments.created_at >= ?", Time.now, Time.now - 1.month) 

EDIT:

Article.joins(:comments).where("articles.published_at <= ? and comments.created_at >= ?", Time.now, Time.now - 1.month) 
+0

Wow, nie wiedziałem, że mogę to zrobić. Dziękuję bardzo. – samvermette

+8

W rzeczywistości zapytanie to zwraca tylko artykuły, które * mają * komentarz opublikowany w poprzednim miesiącu. Muszę mieć * wszystkie * artykuły zwrócone, wraz z komentarzami każdego artykułu opublikowanymi w poprzednim miesiącu (jeśli są jakieś). – samvermette

+0

Co z łączeniem zamiast załącznikiem? (Patrz edytuj) –

4

W Rails4, powinno być: Article.includes(:comments).where("articles.published_at <= ? and comments.created_at >= ?", Time.now, Time.now - 1.month).references(:comments)

Source

+0

Zauważ, że 'includes' współpracuje ze stowarzyszeniem nazwy, podczas gdy 'referencje' wymaga rzeczywistej nazwy tabeli. –

+1

, że sztuczka '.references()' została zapisana, ty ... – 7urkm3n

Powiązane problemy