Скажем, у меня есть две простые моделиКак сделать присоединиться SUM в ActiveRecord
project
t.string :title
vote
t.references :project
t.integer :value
Когда я делаю петлю throuh всех проектов, я также хочу, чтобы включать в себя сумму всех голосов, потому что делать
projects = Project.all
foreach project in projects
sum = project.votes.sum(:value)
...
не очень эффективен.
Есть ли способ, как это сделать без ручной записи SQL? Что-то вроде
SELECT p.*, SUM(v.value)
FROM projects p
LEFT JOIN votes v
ON v.project_id = p.id
GROUP BY p.id
на самом деле, я искал что-то подобное в запросе см редактировать –
Мое предложение будет возвращать OrderedHash из project_id => sum, вы можете связать это с Project.find (: all) и собрать данные довольно легко. Я не думаю, что у рельсов есть поддержка для возвращения чего-то такого сложного без использования raw SQL – klochner