Rails组合了多个包含语句的结果

时间:2013-05-08 14:11:13

标签: ruby-on-rails activerecord model-associations

场景是我需要生成有关更新的通知。现在我可以在三个表上进行更新,即产品,用户和通知。现在,用户可以“跟踪”这三件事中的任何一件,如果三者中的任何一件都有任何更新,则应通知用户。

关系是

通知属于用户

通知属于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”操作。

0 个答案:

没有答案