2014-03-12 170 views
0

我在Ruby on Rails網站上遇到了一些問題。讓我解釋。 我有一個用戶模式,它有很多學分Ruby on Rails,屬性的屬性總和

爲了計算,對於用戶的信用我做的:

@user.credits.sum(:score) 

這工作得很好。

現在有一個模特隊,擁有衆多用戶,我想找出學分總數,我在另一個StackOverflow上發現張貼此:

array.inject{|sum,x| sum + x } 

因此,我認爲對我來說它看起來應該這樣的:

@team.users.inject{|sum,x| sum + x.credits.sum(:score)} 

但這返回

#<User:0x00000101a7c180> 

,而不是總和。猜猜我做錯了什麼。不要猶豫,如果你有一個想法。

感謝

+1

你缺少一個右大括號,同時收集分數的球隊 –

+0

感謝,只是沒有複製大括號 –

+0

try @ team.users.sum {| i | i.credits.sum(:得分)} –

回答

0

你必須設置初始值:

@team.users.inject(0){ |sum,x| sum + x.credits.sum(:score) } 

你也可以這樣做:

@team.users.sum{ |x| x.credits.sum(:score) }