我是 Activerecord 的新手。我想对模型学生的多列进行求和。我的模范学生如下:
class Student < ActiveRecord::Base
attr_accessible :class, :roll_num, :total_mark, :marks_obtained, :section
end
我想要这样的东西:
total_marks, total_marks_obtained = Student.where(:id=>student_id).sum(:total_mark, :marks_obtained)
但它给出以下错误。
NoMethodError: undefined method `except' for :marks_obtained:Symbol
所以我问是否必须针对上述内容查询模型两次,即一次查找总分,另一次查找获得的分数。
您可以使用pluck http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck直接求和:
Student.where(id: student_id).pluck('SUM(total_mark)', 'SUM(marks_obtained)')
# SELECT SUM(total_mark), SUM(marks_obtained) FROM students WHERE id = ?
您可以将所需的列或计算字段添加到pluck
方法,它将返回一个包含值的数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)