1
我有一個訂單模型,其中包含一個飲料ID和數量和單位價格,它們相乘成一個總的訂單價值。如何在Rails控制器的組內執行乘法?
在我的應用程序的另一部分,我需要按飲料ID對訂單進行分組,然後對所有訂單值進行求和以給出庫存總值。
當我需要計算手頭的總數量,我不喜歡這樣的控制器:(由orderable_type我過濾器也有返回)
@delivery_total = Order.group(:beverage_id).sum(:quantity, :conditions => {:orderable_type => 'Delivery'})
所以我想,當我需要計算總訂單價值,這將是如下:
@delivery_value = Order.group(:beverage_id).sum((:quantity * :price), :conditions => {:orderable_type => 'Delivery'})
但是,這並不工作,給錯誤
數量:爲未定義的方法'*」符號
恐怕我還在學習在這裏...任何人都建議這樣做的正確方法?
謝謝 - 乾淨多了。但是會拋出一個關於找不到列的錯誤:SQLite3 :: SQLException:no such column:total_price:SELECT SUM(total_price)AS sum_total_price,beverage_id AS beverage_id FROM「orders」WHERE「orders」。「orderable_type」='Delivery'GROUP BY beverage_id – Nick
@Nick對不起,我以前的回答是錯誤的。我誤以爲ActiveRecord :: Calculations#sum爲Enumerable裏面的東西。你會嘗試新的答案嗎? –
工程就像一個魅力 - 謝謝! :-) – Nick