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クエリを実行できますが、レールではこれを理解できません。

私が試したこと

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 に答える