我有一个订单模型,其中包含饮料ID以及数量和单价,它们相乘以得出总订单价值。
在我的应用程序的另一部分中,我需要按饮料ID对订单进行分组,然后将所有订单值相加以得出总库存值。
当我需要计算手头的总量时,我会在控制器中这样做:
@delivery_total = Order.group(:beverage_id).sum(:quantity, :conditions => {:orderable_type => 'Delivery'})
(我按orderable_type过滤,因为还有返回)
所以我想,当我需要计算总订单价值时,它将是以下内容:
@delivery_value = Order.group(:beverage_id).sum((:quantity * :price), :conditions => {:orderable_type => 'Delivery'})
但这不起作用,给出错误
未定义方法`*'表示:数量:符号
我担心我还在这里学习......任何人都可以建议正确的方法吗?
答案 0 :(得分:1)
sum
的第一个参数应该是String,如下所示:
@delivery_total = Order.group(:beverage_id).sum("quantity * price", :conditions => {:orderable_type => 'Delivery'})