使用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(',')}")
: 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...
答案 0 :(得分:1)
对于您的查询,您需要以下内容:
People.where('id NOT IN (?)', ids)
其中ids
是一个id号数组(例如[11,106]
)
现在,我不知道amistad
,但你可能想尝试做一个简单的减法来获取你的需求列表。类似的东西:
People.all - People.blockades - People.blockades_by