0

使用 amistad gem 我可以得到 People.all

查看文档后,它看起来像

People.blockades and People.blockades_by

返回阻止您的人和您阻止的人

https://github.com/raw1z/amistad/wiki

是否可以返回除您已阻止的人和已阻止您的人之外的所有人的查询?我花了很多时间试图弄清楚这一点无济于事。你在哪里,和

a = People.first # or any person, really

使用普通的 SQL 可以做一个 not in 查询,但我无法用 rails 解决这个问题。

我试过的

People.where(:condition => "id NOT IN #{ids.join(',')}")

错误

: SELECT "peoples".* FROM "peoples"  WHERE "peoples"."condition" = 'id NOT IN 11,106'
PG::UndefinedColumn: ERROR:  column peoples.condition does not exist
LINE 1: SELECT "peopless".* FROM "peopless"  WHERE "peoples"."condi...
4

1 回答 1

1

对于您的查询,您需要以下内容:

People.where('id NOT IN (?)', ids)

idsid 数组在哪里(例如[11,106]

现在,我不知道amistad,但您可能想尝试做一个简单的减法来获得您需要的人员列表。就像是:

People.all - People.blockades - People.blockades_by
于 2014-05-07T18:47:28.117 回答