У каждого пользователя может быть много ресурсов, и каждый из этих ресурсов имеет много голосов, и каждый из этих голосов имеет атрибут value, который я хочу суммировать для всех этих конкретных ресурсов пользователей.Как суммировать много-много значение?
Если я печатаю это в синтаксически неверный путь, я хочу что-то вроде ...
@user.resources.votes.sum(&:value)
, но это, очевидно, не будет работать.
Я считаю, что мне нужно использовать collect
, но я не уверен?
Это ближайший я получил, но он печатает их, хе
<%= @user.resources.collect { |r| r.votes.sum(&:value) } %>
Извините, я не понимаю, что вы имеете в виду. То, что я хочу сделать, это по существу sum = 0; @ user.resources.each do {| resource | sum + = resource.votes.sum (&: value)} – Tallboy
Этот код работает, но слишком долго, я просто хотел написать все это на одной строке – Tallboy
Если у вас правильно заданные отношения, вы сможете рассчитать сумму по '@ user.votes.sum (: value)'. – jdoe