如何在 Rails 中获取 ids => id 集合的反转



我正在尝试返回此语句的反转:

scope :subscribed, lambda {|user| where(:venue_id => user.flagged_venues)}

flagged_venues 返回一个 id 数组,因此当我运行该语句时,我会获取所有标记的场所。我真正想要的是恰恰相反:除了标记的场地之外的所有场地。

我用!=而不是=>尝试了它,但这返回了所有场地。

当它更改为where("venue_id <> ?", user.flagged_venues)时,我收到此错误: PG::D atatype不匹配: 错误: WHERE 的参数必须是布尔类型,而不是类型记录 第 1 行:选择"事件"。 从"事件"中 其中 (venue_id <> 2,4)

你想要不在flagged_venues列表中的id,所以我的猜测是你应该替换

where(:venue_id => user.flagged_venues)

where("venue_id not in (?)", user.flagged_venues)

相关内容

  • 没有找到相关文章

最新更新