Условные обозначения Rails 3 ActiveRecord включают?
Я знаю, что это можно сделать:
Article.where("published_at <= ?", Time.now).includes(:comments)
Но что, если я хочу получать комментарии только за последний месяц?
Имеет ли оператор .includes оператор условия?
Ответы
Ответ 1
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)
Ответ 2
В Rails4 это должно быть:
Article.includes(:comments).where("articles.published_at <= ? and comments.created_at >= ?", Time.now, Time.now - 1.month).references(:comments)
Источник