如果我只是在查询中包含嵌套模型这样
@projects = current_user.projects.all(include: :reviews)
一切都好。但是Review模型有一定的范围,我需要在上面的查询中实现。我试着这个
@projects = current_user.projects.all(include: :reviews.unreaded)
并获得错误。这样做的正确方法是什么?
答案 0 :(得分:1)
一种选择是基于范围创建关联,粗略地说:
@projects = current_user.projects.all(include: :unread_reviews)
然后创建一个unread_reviews
关联,大致:
class Project < ...
has_many :unread_reviews, :conditions => ['read=?', true], :class_name => "Review"
(显然,将上述has_many
替换为您的关联详情。)
association docs中讨论了这种技术。