0

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

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

flagged_venues返回一个 id 数组,所以当我运行该语句时,我会得到所有标记的场所。我真正想要的是完全相反的:除了标记的场馆之外的所有场馆。

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

当它更改为where("venue_id <> ?", user.flagged_venues)then 我收到此错误:PG::DatatypeMismatch: ERROR: argument of WHERE must be type boolean, not type record LINE 1: SELECT "events".* FROM "events" WHERE (venue_id <> 2,4)

4

1 回答 1

0

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

where(:venue_id => user.flagged_venues)

经过

where("venue_id not in (?)", user.flagged_venues)
于 2013-09-06T01:17:32.710 回答