我对有点陌生。我有一个has_many课程的个人资料模型。
create_table "profiles", force: :cascade do |t|
t.string "pname"
t.float "current_gpa"
end和
create_table "courses", force: :cascade do |t|
t.integer "course_number"
t.float "gpa"
end我想计算平均gpa: current_gpa =所选课程的gpa之和/所选课程的数值。我该怎么做?
发布于 2016-12-01 02:24:16
你应该考虑阅读一些文档--显然很快就能得到答案,但有时文档会引导你找到你不知道要找或不想要的东西。
也就是说,最快的方法是使用平均值
profile.courses.average(:gpa)这会给你一个平均值。或者你可以用很长的路去做,如果出于某种原因,你需要在两者之间做些修改。
profile.courses.sum(:gpa) / profile.courses.count发布于 2019-09-30 19:03:51
还有一张纸条..。平均值返回浮点数或BigDecimal,通常用十进制表示法表示。这可能是混乱的,可能不是你想要的。您可以探索添加这样的内容:.to_int、.to_f、.truncate、.round等等.
Person.average(:age) # => 0.387e2
Person.average(:age).to_i # => 38
Person.average(:age).to_f # => 38.7
Person.average(:age).to_f.round # => 39发布于 2016-12-01 02:20:59
您可以使用ActiveRecord::计算平均值
profile.courses.average(:gpa)https://stackoverflow.com/questions/40901363
复制相似问题