我有一个主题和一个项目模型。我在他们之间有一个多对多的屁股(HABTM 之一)。
在主题的索引页面中,我想显示每个主题拥有的项目数。所以我有
@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?因为 HABTM Ass 不支持 counter_cache,而且我真的不想自己实现它......所以有没有办法让第二个查询更快?
我只需要在不加载整个项目对象的情况下提取计数...
提前致谢,
尼古拉斯·霍克·伊萨萨