日期与nil的比较失败-ruby
我运行的代码如下:日期与nil的比较失败-ruby,ruby,Ruby,我运行的代码如下: if valid_from > Date.today 当我运行这个时,我得到一个错误 将日期与nil进行比较失败 我认为这是因为在某些情况下,valid\u from是nil。有没有办法避免出现此错误?您可以执行以下操作: if valid_from and valid_from > Date.today ... end 因为valid_from是nil,所以它将在第一个子句上短路。另一个选项是将两者都转换为整数 if valid_from.to_i &g
if valid_from > Date.today
当我运行这个时,我得到一个错误
将日期与nil进行比较失败
我认为这是因为在某些情况下,valid\u from
是nil
。有没有办法避免出现此错误?您可以执行以下操作:
if valid_from and valid_from > Date.today
...
end
因为valid_from是nil,所以它将在第一个子句上短路。另一个选项是将两者都转换为整数
if valid_from.to_i > Date.today.to_i
(nil转换为0,并且永远不会大于当前日期)
优点是它较短,不需要额外的病例治疗。缺点:在epoch start second中失败(在很多情况下可以忽略)我喜欢这样做:
valid\u from&&valid\u from>日期。今天
当valid\u from
为nil
时,您希望返回什么条件?您想要true
还是false
?这是不可能的(再也不可能了):NoMethodError(未定义的Sun“to_i”方法,2021年1月31日:日期)