Rails 3 ActiveRecord conditional includes?
I know this can be done:
Article.where("published_at <= ?", Time.now).includes(:comments)
But w开发者_开发知识库hat if I'd like to only get comments posted in the past month?
Does the .includes operator allow conditions?
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)
In Rails4, it should be:
Article.includes(:comments).where("articles.published_at <= ? and comments.created_at >= ?", Time.now, Time.now - 1.month).references(:comments)
Source
精彩评论