Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
日期与nil的比较失败-ruby_Ruby - Fatal编程技术网

日期与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日:日期)