私のrisk.rbモデルの一部としていくつかの計算値があります
before_save :calculate_risk
def calculate_risk
self.risk1_total = self.component1 * self.component2 * self.component3
self.risk2_total = self.component4 * self.component5 * self.component6
...
end
フォームに完全に記入せずにリスクを作成できるようにしたいので、これらの各コンポーネントはゼロになります。したがって、*はnilの有効なメソッドではないため、このメソッドはエラーを作成します。これを処理するための最良の方法は何ですか?私は考えました
def calculate_risk
if self.component1.nil? || self.component2.nil? || self.component3.nil?
self.risk1_total = self.component1 * self.component 2 * self.component3
elsif ...
end
ただし、これは明らかに非効率的で反復的です。これらの値をすべて初期化することも検討しましたが、これを行う最も効率的な方法はわかりません。