我正在寻找一种方法来拯救这样的错误。我正在浏览一些遗留项目,下面的方法中的第三行显示导致系统因此错误而崩溃nil can't be coerced into Float
def apply_discount_if_positive(price)
if price > 0.0
(price - (price * base_client_discount)).round(2)
else
price
end
end
但是,我不明白的是,这是。
我知道这不是一个理想的解决方案,但即使我在条件声明之前添加price.to_f
它仍然无法正常工作。
答案 0 :(得分:0)
我只是在做第3行之前检查折扣是否为零,这样的事情应该有效:
def apply_discount_if_positive(price)
if price > 0.0 && base_client_discount
(price - (price * base_client_discount)).round(2)
else
price
end
end