【发布时间】:2014-01-26 12:51:32
【问题描述】:
抱歉,如果我要为此绞尽脑汁。但是我有以下代码,并且想要一个总和而不是两个单独的数字:
<% @all_users.each do |i| %>
<%= i.liked_recipes.count %>
<% end %>
这段代码的输出如下:
12 4
我希望输出是总和:
16
【问题讨论】:
标签: ruby-on-rails count sum
抱歉,如果我要为此绞尽脑汁。但是我有以下代码,并且想要一个总和而不是两个单独的数字:
<% @all_users.each do |i| %>
<%= i.liked_recipes.count %>
<% end %>
这段代码的输出如下:
12 4
我希望输出是总和:
16
【问题讨论】:
标签: ruby-on-rails count sum
还有:
<%= @all_users.sum { |u| u.liked_recipes.count } %>
【讨论】:
您需要一些方法来跟踪计数:
<% total = 0 %>
<% @all_users.each do |i| %>
<% total += i.liked_recipes.count %>
<% end %>
<%= total %>
【讨论】:
更短的方法是使用inject
@all_users.inject(0) { |result, i| result + i.liked_recipes.count }
【讨论】:
如果@all_users 除了这些配方计数之外没有加载,那么最好让数据库进行计数:
LikedRecipe.where(:user_id => @all_users.select(:id)).count
【讨论】: