Ruby on Rails,属性的一个属性的总和

时间:2014-03-12 12:03:39

标签: ruby-on-rails ruby

我在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 :(得分:1)

您必须设置初始值:

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

你也可以这样做:

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