トピックとプロジェクト モデルがあります。それらの間に多対多のお尻があります(HABTM 1)。
トピックのインデックス ページに、各トピックのプロジェクト数を表示したいと考えています。ので、私は持っています
@topics = Topic.all(:include => [:projects])
私のコントローラーでは、これまでのところとても良いです。問題は、プロジェクト モデルが非常に大きいため、クエリがまだ非常に遅いことです。
Topic Load (1.5ms) SELECT * FROM "topics"
Project Load (109.2ms) SELECT "projects".*, t0.topic_id as the_parent_record_id FROM "projects" INNER JOIN "projects_topics" t0 ON "projects".id = t0.project_id WHERE (t0.topic_id IN (1,2,3,4,5,6,7,8,9,10,11))
* を選択せずに名前または ID だけを選択するように 2 番目のクエリを作成する方法はありますか? counter_cache は HABTM Ass でサポートされていないため、自分で実装したくありません...この 2 番目のクエリを高速化する方法はありますか?
プロジェクトオブジェクト全体をロードせずにカウントを取得するだけです...
前もって感謝します、
ニコラス・ホック・イサザ