我在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>
而不是总和。猜猜我做错了什么。如果你有想法,不要犹豫。
由于
答案 0 :(得分:1)
您必须设置初始值:
@team.users.inject(0){ |sum,x| sum + x.credits.sum(:score) }
你也可以这样做:
@team.users.sum{ |x| x.credits.sum(:score) }