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