1

我有一个 Orders 模型,其中包含饮料 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'})

但这不起作用,给出错误

:quantity:Symbol 的未定义方法“*”

恐怕我仍然在这里学习......有人可以建议正确的方法吗?

4

1 回答 1

1

的第一个参数sum应该是一个字符串,像这样:

@delivery_total = Order.group(:beverage_id).sum("quantity * price", :conditions => {:orderable_type => 'Delivery'})
于 2013-04-15T08:19:00.590 回答