0

在我的视图辅助方法中,我希望能够计算两个数字之间的范围。现在我正在这样做:

def show_range
 max = @shirts.get_max
 min = @shirts.get_min
 max-min
end

我知道 max 和 min 正在工作,因为我可以将它们的每个值打印出来。但是,当我尝试在“模块 ShirtsHelper”中执行此简单的数学函数时,出现以下错误:

undefined method `-' for nil:NilClass

为什么我会收到此错误,我该怎么做才能修复它?

4

1 回答 1

3

您收到错误是因为您的max变量是nil并且-nil. 您可以检查 min 和 max 是否nilmax - min if max && min. 但是,我猜你可能想在这种情况下提供一个后备值(例如 0),所以你可能正在寻找这样的东西

def show_range
  max = @shirts.get_max
  min = @shirts.get_min

  if max && min
    max - min
  else
    0 # Fallback value
  end
end

或者更简洁:

def show_range
  max = @shirts.get_max
  min = @shirts.get_min
  max && min ? max - min : 0
end
于 2013-05-19T21:28:17.927 回答