如何总结一系列计数

时间:2014-01-26 12:51:33

标签: ruby-on-rails count sum

如果我正在为此采取行动,请道歉。但我有以下代码,并希望得到它的总和,而不是两个单独的数字:

    <% @all_users.each do |i| %>
        <%= i.liked_recipes.count %>
    <% end %>

此代码的输出如下:

12 4

我想要的输出是总和:

16

4 个答案:

答案 0 :(得分:2)

此外:

<%= @all_users.sum { |u| u.liked_recipes.count } %>

答案 1 :(得分:1)

您需要一些方法来跟踪计数:

<% total = 0 %>
<% @all_users.each do |i| %>
    <% total += i.liked_recipes.count %>
<% end %>
<%= total %>

答案 2 :(得分:0)

更简单的方法是使用inject

@all_users.inject(0) { |result, i| result + i.liked_recipes.count }

答案 3 :(得分:0)

如果除了这些食谱计数之外没有加载@all_users,那么最好让数据库进行计数:

LikedRecipe.where(:user_id => @all_users.select(:id)).count