作为 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
然而,这显然是低效且重复的。我还考虑过初始化所有这些值,尽管我不知道最有效的方法。