如何在Rails控制器中的组内执行乘法?

时间:2013-04-15 08:11:26

标签: ruby-on-rails ruby

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

但这不起作用,给出错误

  

未定义方法`*'表示:数量:符号

我担心我还在这里学习......任何人都可以建议正确的方法吗?

1 个答案:

答案 0 :(得分:1)

sum的第一个参数应该是String,如下所示:

@delivery_total = Order.group(:beverage_id).sum("quantity * price", :conditions => {:orderable_type => 'Delivery'})