我正在学习 Rails 并试图以正确的方式做到这一点,但我一直在努力寻找解决方案。
我的排名模型中有一个很长的体育排名列表,我试图根据过滤器和应用到它的一般业务逻辑(即日期范围、运动等)来操纵这些排名。
排名模型
t.string "rank"
t.integer "team_id"
t.integer "sport_id"
t.integer "source_id"
团队模型
t.string "team"
t.integer "sport_id"
运动模型
t.string "sport"
例如,我想做的一件事是找到每个团队多年来的平均排名。我知道这样做的一种方法是类似的Ranking.average(:rank, :group => 'team_id')
,但这似乎不是很干燥。
我的另一个想法是创建一个数组、散列、json,甚至是一个临时表(可能不是一个好主意),以便让我更轻松地应用计算和操作数据。
再说一次,我还是有点绿,所以我可能会错过一个简单的解决方案,但最好的做法是什么?