2013-09-30 62 views
2

我有兩個計算的值小計裝運電荷和第三個其是前兩個的總和。我想在視圖中顯示它們全部三個。我怎樣才能做到這一點。我現在正在做的事情看起來不太好。滑軌:與計算值的工作

Subtotal: <%= @cart.subtotal %> 
    Shipment: <%= @cart.shipment_charges %> 
    Total: <%= @cart.subtotal + @cart.shipment_charges %> 

最後是再次調用方法來獲得最終總數。最佳做法是什麼?

而且存儲結果這樣的觀點也很糟糕

<%- subtotal = @cart.subtotal %> 
    <%- shipment_charges = @cart.shipment_charges %> 
    ... 
    Total: <%= subtotal + shipment_charges %> 

請幫

回答

0
  1. 好的做法是在控制器準備實例變量
  2. 那裏你可以讓你的總和作爲以及
3

既然你在處理髮票,你不想要t o保存這些值?

如果沒有,你應該使用虛擬屬性:

class Invoice < ActiveRecord::Base 
    def total 
    subtotal + shipment_charges 
    end 

end 

檢查this link一個詳細的例子。

0

我不相信你在做什麼是不好的做法。一般來說,您應該嘗試並保留業務邏輯以避免您的觀點,但您在此處所做的只是簡單介紹數據。

除非您打算將Total發回數據庫,否則這不是什麼大不了的事情。

如果您在其他地方使用小計,shipment_charges和總數,則可以將它們聲明爲模型上的計算字段。

例如

Class Cart ... 

    def total_cost 
    self.subtotal + self.shipment_charges 
    end 

end 

這樣,你可以叫@ cart.total_cost在你看來

+0

我必須展示視圖中的所有三個值。因此'@ cart.total_cost'將再次執行相同的計算,這已經爲'@ cart.subtotal'和'@ cart.shipment_charges'完成了 – androidharry