我正在运行这样的代码:
if valid_from > Date.today
当我运行此代码时,出现以下错误:
Date与nil的比较失败
我猜测这是因为在某些情况下,valid_from
是nil
。有没有一种避免出现这个错误的方法?
我正在运行这样的代码:
if valid_from > Date.today
当我运行此代码时,出现以下错误:
Date与nil的比较失败
我猜测这是因为在某些情况下,valid_from
是nil
。有没有一种避免出现这个错误的方法?
if valid_from and valid_from > Date.today
...
end
这段代码会在第一个条件中短路,因为valid_from是nil,因此为false。
if valid_from.to_i > Date.today.to_i
(nil转换为0,且永远不会大于当前日期)
优点是它更短并且不需要额外的处理。缺点是在纪元开始的秒数失败(对许多场景来说可能可以忽略不计)。
NoMethodError(未定义方法'to_i' for Sun,31 Jan 2021:Date)
- Sven R.valid_from && valid_from > Date.today
valid_from
为nil
时,您希望条件返回什么?您想要true
还是false
? - sawa