В моем приложении у меня есть модель User
с методом goal_ytd
, которая выполняет некоторые вычисления.
В контроллере у меня есть переменная @users
, которая может быть User
или ActiveRecord::Relation
of users
, и я хотел бы суммировать все @users
goal_ytd
s.
Мое первое наклонение было:
@users.sum(&:goal_ytd)
В обоих случаях было предупреждено об устаревании, поскольку использование sum
в ActiveRecord::Relation
уходит в Rails 4.1.
Итак, я изменил код на:
@users.to_a.sum(&:goal_ytd)
Что тогда выбрало NoMethodError
, потому что в известном случае @users
назначается @users = User
, а User
не имеет метода to_a
.
Присвоение @users
с помощью @users = User.all
выдает предупреждение об устаревании, поскольку Relation#all
также устарел.
Есть ли способ получить все users
как массив? Есть ли лучший способ?