我有一个TourDet模型,其中包括以下持久性属性:
tdclientid
tdsuppid
tdpaxnos
tdpriceperpax
我在TourDet类中也有以下内容
def tourval
tdpaxnos * tdpricerperpax
end
我现在正尝试执行以下操作:
tdis = TourDet.find(:all, conditions: ['tdtourhdrid = 23'], group: [:tdsuppid,:tdclientid], select: ['tdsuppid,tdclientid,sum(tourval) as ttl'])
然而,rails抱怨未知列'tourval'。
关于如何以另一种方式实现相同结果的任何想法?
我正在使用Rails 3.2和Ruby 1.9以及MySQL。
答案 0 :(得分:0)
据我了解你的应用程序,你不能在查询中引用tourval
,因为它是在Ruby中定义的,而不是在MySQL中定义的。
这个怎么样?
tdis = TourDet.find(:all, conditions: ['tdtourhdrid = 23'], group: [:tdsuppid,:tdclientid], select: ['tdsuppid,tdclientid,sum(tdpaxnos*tdpricerperpax) as ttl'])