[英]Ruby on Rails Calculations
我是Rails和編碼的新手,我正在嘗試通過為交付驅動程序開發應用程序來自學。 我有一個稱為負載的表,其中包括毛重,皮重和凈重的列。 按照目前的方式,駕駛員必須手動輸入所有3個砝碼。 我正在嘗試找出使應用程序計算凈重的最佳方法(通過從毛重中減去皮重)並將其添加到凈列中。 這樣可以減少驅動程序犯一個簡單的數學錯誤。 我正在使用MySQL,有人可以指出正確的方向嗎?
我將向模型添加一個before_validation
回調,然后讓我們計算缺失值。 像這樣:
# in your model
before_validation :calculate_net_weight
private
def calculate_net_weight
self.net_weight = gross_weight - tare_weight
end
順便說一句。 我認為將這三個值存儲在數據庫中是有意義的,即使您可以從另外兩個中計算出一個。 但是在數據庫中包含所有這三個值可能有助於解決問題,也可能使計算或統計更加容易。
為什么要將這種邏輯保留在數據庫中? 您可以簡單地將其包含在模型中。
假設您有一個負載模型
只需添加以下方法
def net_weight
gross_weight - tare_weight
end
我還要問為什么您必須將其存儲在數據庫中。 如果確實要存儲它,則:
您可以創建模型的before_create lifecyle 掛鈎 ,以在將其保存到數據庫之前計算和設置值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.