我有一个小问题:我无法在AR内部编写sql-query。活动记录和sql的问题
所以,我有Project
和Task
型号,Project has_many Tasks
。 Task
有aasm字段(即“状态”;但它并不重要,我可以是简单的int或字符串字段)。
因此,我希望在我的项目索引页面列表中列出所有(最后一个)项目,并且为每个我希望计划的项目计算它的活动,挂起和解决(例如)任务。
与此类似,只是看:
- 第一个项目(1个活动,2待定, 10解决)
- 二项目(4 活跃,2待定,2解决)
所以,当然我可以用@projects = Project.all
做到这一点,然后看:
- @projects.each do |project|
= project.title
= project.tasks(:conditions => {:status => "active"}).count #sure it should be in model, just for example
= project.tasks(:conditions => {:status => "pending"}).count
# ...
- end
这很好,但是使1 + N * 3(对于3个任务状态)查询,我想要1.问题很简单:how?
。
你有除了counter_cache什么想法?我不想使用它们,所以我会在最后一种情况下使用它们。谢谢! – 2010-10-06 09:00:57