场景是我需要生成有关更新的通知。现在我可以在三个表上进行更新,即产品,用户和通知。现在,用户可以“跟踪”这三件事中的任何一件,如果三者中的任何一件都有任何更新,则应通知用户。
关系是
通知属于用户
通知属于Nook
通知属于产品
产品有很多粉丝(粉丝是与用户表的关系)
用户有很多粉丝
Nook有很多粉丝
当我尝试用户ID = 1时说:
Notification.includes(:product => :followers).where("relations.follower_id = ?", 1)
Notification.includes(:user => :followers).where("relations.follower_id = ?", 1)
Notification.includes(:nook => :followers).where("relations.follower_id = ?", 1)
以上所有三个单独执行时都能正常工作。
但是当我这样做时:
Notification.includes(:product => :followers, :user => :followers, :nook => :followers).where("relations.follower_id = ?", 1)
它没有给我想要的结果。我是rails的新手,所以我想知道如何实现下面提到的东西: 我想要的是使用单个查询的所有上述三个查询的组合结果,因为我想对所有三个查询的组合结果进行排序操作。三种查询的一种“OR”操作。