在我的应用程序中,我有一个User带有goal_ytd方法的模型,可以执行一些计算。
在控制器中,我有一个@users可能是User或 的ActiveRecord::Relation变量,users我想对所有的@userss求和goal_ytd。
我的第一个倾向是:
@users.sum(&:goal_ytd)
这在这两种情况下都引发了弃用警告,因为在 Rails 4.1 中使用sumon anActiveRecord::Relation正在消失。
因此,我将代码更改为:
@users.to_a.sum(&:goal_ytd)
然后抛出一个NoMethodError,因为在某种情况下,@users被分配@users = User并且User没有to_a方法。
分配@usersusing@users = User.all会引发弃用警告,因为Relation#all也已弃用。
有没有办法把所有的都Users作为一个数组?有没有更好的办法?