Disons que j'ai deux modèles simplesComment ne se joindre à SUM ActiveRecord
project
t.string :title
vote
t.references :project
t.integer :value
Quand je fais boucle throuh tous les projets, je veux aussi inclure la somme de tous les votes, car cela
projects = Project.all
foreach project in projects
sum = project.votes.sum(:value)
...
n'est pas vraiment efficace.
Existe-t-il un moyen de le faire sans écrire manuellement le SQL? Quelque chose comme
SELECT p.*, SUM(v.value)
FROM projects p
LEFT JOIN votes v
ON v.project_id = p.id
GROUP BY p.id
en fait, je cherchais quelque chose comme dans la requête, voir modifier –
Ma suggestion, vous recevrez un OrderedHash de project_id => sum, vous pouvez coupler cela avec un Project.find (: all) et assembler les données assez facilement. Je ne pense pas que les rails aient un support pour retourner quelque chose de si complexe sans utiliser de SQL brut – klochner