2012-12-13 46 views
0
<% @user.friendships.each do |f| %> 
    <%= f.friend.count %> 
<% end %> 

這將返回一組數字1 2 1 1 3的,但是當我試圖讓這些值的總和,我得到這個錯誤:undefined method sum for 1:Fixnum未定義的方法'和」 1:Fixnum對象

<%= f.friend.count.sum %> 
<%= f.friend.count.sum(:value) %> 
<%= f.friend.count.inject {|sum, x| sum + x} %> 

回答

1

我認爲這是你在找什麼:

<%= @user.friendships.inject(0) {|sum, f| sum + f.friend.count} %> 

需要注意的重要一點是,你呼籲友誼收集註入和f.count增量的總和。

+5

'<%= @ user.friendships.includes(:friend).inject(0){| sum,f | sum + f.friend.count}%>'以便加載「朋友」關聯。這樣,每次迭代都不會觸及數據庫。 – Substantial

相關問題