Rails& Active Record Query获取没有属于current_user的子对象的对象

时间:2016-09-21 23:36:35

标签: ruby-on-rails activerecord

一个赛事有很多投票。用户has_many投票。投票属于用户和事件。

我正在尝试渲染特定用户未投票的所有事件。这是我的查询,但它返回所有事件:

Event.includes(:votes).where("votes.user_id != ? OR votes.user_id IS NULL", current_user.id).references(:votes)

我在控制器中进行了双重检查,用户投了3次。 Event.all给我带来了820件事。 Event.includes(:votes).where("votes.user_id = ?", current_user.id).references(:votes)让我3(正确)。但我正在尝试构建一个将返回817结果的查询。

总共有236票。 3来自当前用户。当我运行查询时,我将返回其他用户投票的所有事件(233个事件有来自其他用户的投票)。相反,我想用其他用户的投票(233)以及没有投票的其他事件返回所有事件

Event.includes(:votes).where.not("votes.user_id = ?", current_user.id).references(:votes)获得233个结果(因为其他用户已投票选举某些活动)。

如何构建此查询?

0 个答案:

没有答案