Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 救援';零不能强制为浮动';错误_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 救援';零不能强制为浮动';错误

Ruby on rails 救援';零不能强制为浮动';错误,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在寻找一种方法来挽救这样一个错误。我正在浏览一些遗留项目,下面方法中的第三行似乎导致系统崩溃,出现此错误nil不能强制为Float def apply_discount_if_positive(price) if price > 0.0 (price - (price * base_client_discount)).round(2) else price end end 但我不明白的是,这件事 我知道这不是一个理想的解决方案,但即使

我正在寻找一种方法来挽救这样一个错误。我正在浏览一些遗留项目,下面方法中的第三行似乎导致系统崩溃,出现此错误
nil不能强制为Float

  def apply_discount_if_positive(price)
    if price > 0.0
   (price - (price * base_client_discount)).round(2)
    else
      price
    end
  end
但我不明白的是,这件事


我知道这不是一个理想的解决方案,但即使我在条件声明之前添加
价格,它仍然不起作用。

在执行第3行之前,我只需检查折扣是否为零,这样的smth应该起作用:

def apply_discount_if_positive(price)
    if price > 0.0 && base_client_discount
     (price - (price * base_client_discount)).round(2)
    else
      price
    end
end

如果错误在第3行,那么必须是
base\u client\u折扣
为零,因此提供一个回退。(否则它将在第2行与0.0进行比较时失败)是的@MarianTheisen,你是对的。我只是在最后加了.到f,它修正了错误。不知道这是否是最理想的解决方案,但嘿嘿