私は2つのモデル、レジスターとコンペティションの間に関係があります。作成中の非常に複雑な動的クエリがあります。条件が正しければ、登録レコードを、競争の親が特定の基準を満たすレコードのみに制限する必要があります。競争テーブルから選択せずにこれを行うために、私は次のようなことを考えていました...
Register.where("competition_id in ?", Competition.where("...").collect {|i| i.id})
これはこのSQLを生成します:
SELECT "registers".* FROM "registers" WHERE (competition_id in 1,2,3,4...)
inパラメータが括弧で囲まれていないという事実をPostgreSQLが気に入ったとは思いません。Register外部キーを競合IDのリストと比較するにはどうすればよいですか?