我有一个成绩模型,我需要从中拉出两列的平均值 - 准确度和时间。我正在使用以下查询将两个值组合在一起,而不是两次查询模型。
Grade.where(student_id: 25).pluck('avg(accuracy), avg(time)')
我得到两个值,但它们采用以下格式,我不明白:
[[#<BigDecimal:7f9c5a890410,’8.0’,9(18)>, #<BigDecimal:7f9c5a8903c0,’10.0’,9(18)>]]
如何仅从中提取我需要的值?即avg_accuracy = 8.0和avg_time = 10.0
我是Ruby,Rails,ActiveRecord的新手。我很感激帮助。
答案 0 :(得分:3)
grades = Grade.where(student_id: 25, class_id: 123).pluck('avg(accuracy), avg(time)').first
应该
[#<BigDecimal:7f9c5a890410,’8.0’,9(18)>, #<BigDecimal:7f9c5a8903c0,’10.0’,9(18)>]
现在将它们转换为简单浮动。
grades.map!(&:to_f)
应该
[8.0, 10.0]