У меня небольшая проблема: я не могу составить sql-запрос внутри AR.
Итак, у меня есть модели Project
и Task
, Project has_many Tasks
. Task
имеет aasm-поле (то есть "status"; но это не имеет значения, я могу быть простым 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?
.