我想尝试将参数中的日期转换为日期格式,如果不能,那么我想将它分配给今天一年的日期。
这是我尝试过的。
valid_until = params[:valid_until].try(:to_date) || Date.today.next_year
这个try
方法很酷,因为如果:valid_until
日期为 nil,它只会返回 nil。我发现,如果有人有一个无效日期,如“4790224374”,那么它将返回一个ArgumentError
无效日期。该:valid_until
日期仍将针对to_date
。
我猜想通过救援来解决这个问题似乎是唯一的答案,只是想知道在明年将其设置为默认值之前,是否有更聪明的方法来尝试解决 nils 和无效日期错误。
编辑:
您可以在此处阅读有关 Try 的信息。