如果我只是在查询中包含嵌套模型,这样
@projects = current_user.projects.all(include: :reviews)
一切都好。但是 Review 模型有一些范围,我需要在上面的查询中实现。我试试这个
@projects = current_user.projects.all(include: :reviews.unreaded)
并得到错误。这样做的正确方法是什么?
如果我只是在查询中包含嵌套模型,这样
@projects = current_user.projects.all(include: :reviews)
一切都好。但是 Review 模型有一些范围,我需要在上面的查询中实现。我试试这个
@projects = current_user.projects.all(include: :reviews.unreaded)
并得到错误。这样做的正确方法是什么?
一种选择是根据范围创建关联,大致如下:
@projects = current_user.projects.all(include: :unread_reviews)
然后创建一个unread_reviews
关联,大致:
class Project < ...
has_many :unread_reviews, :conditions => ['read=?', true], :class_name => "Review"
(显然,将上面的内容替换为has_many
您的协会详细信息。)
该技术在关联文档中进行了讨论。