J3R*_*3RN 16 ruby activerecord ruby-on-rails activerecord-relation ruby-on-rails-4.1
在我的应用程序中,我有一个User模型,有一个goal_ytd方法,执行一些计算.
在控制器,我有一个变量@users可能是User或ActiveRecord::Relation的users,我想总结所有的@users的goal_ytd秒.
我的第一个倾向是:
@users.sum(&:goal_ytd)
Run Code Online (Sandbox Code Playgroud)
在两种情况下都抛出了弃用警告,因为在Rails 4.1中使用sumon ActiveRecord::Relation会消失.
所以,我将代码更改为:
@users.to_a.sum(&:goal_ytd)
Run Code Online (Sandbox Code Playgroud)
然后扔了NoMethodError,因为在某些情况下,@users由分配@users = User并User没有to_a方法.
@users使用@users = User.allthrows 分配弃用警告因为Relation#all也已弃用.
有没有办法把所有Users作为一个数组?有没有更好的办法?
daz*_*nic 32
在Rails 4.1
如果goal_ydt是users表中的列:
@users.sum(:goal_ydt)
Run Code Online (Sandbox Code Playgroud)
如果goal_ydt是User类中的方法:
@users.to_a.sum(&:goal_ydt)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11944 次 |
| 最近记录: |