簡體   English   中英

Ruby on Rails計算

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM