Rails Not In - Amistad Gem - 不选择阻止您或阻止您的人

时间:2014-05-07 18:01:35

标签: ruby-on-rails activerecord ruby-on-rails-4 amistad

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

查看文档后,它看起来像

People.blockades and People.blockades_by

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

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

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

a = People.first # or any person, really

使用普通的SQL,可以不进行查询,但我无法用rails来解决这个问题。

我尝试了什么

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

ERROR

: 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...

1 个答案:

答案 0 :(得分:1)

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

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

其中ids是一个id号数组(例如[11,106]

现在,我不知道amistad,但你可能想尝试做一个简单的减法来获取你的需求列表。类似的东西:

People.all - People.blockades - People.blockades_by