複数のコンテストとオブジェクトを設定しています。それらは、has_many:throughアレンジメントとcontest_objsで結び付けられています。コンテスト_objsにも投票があるので、いくつかのオブジェクトを含むいくつかのコンテストを開催できます。現在のランキングを計算するための複雑なSQL設定があります。ただし、ランキングのSQLselectステートメントでコンテストを指定する必要があります。私はこれを行うのに苦労しています。これは私がこれまでに得たものです:
@objects = @contest.objects.select('"contest_objs"."votes" AS v, name, "objects"."id" AS id,
(SELECT COUNT(DISTINCT "oi"."object_id")
FROM contest_objs oi
WHERE ("oi"."votes") > ("contest_objs"."votes"))+1 AS vrank')
vrankの選択で、WHEREに「oi」も含まれるように指定する方法はありますか。 "contest_id" = @ contest.id?