`<<':哈希中的无效日期(ArgumentError)

时间:2012-11-27 22:30:46

标签: ruby

这是我的代码:

item = []
today = Date.today

dates = {"3 years" => today << 12*3, "2 years" => today << 12*2,
"1.5 years" => today <<  12*1.5,"1 year" => today << 12, "6 months" => today << 6,
"3 months" => today << 3, "today" => today}

我每次运行`<<': invalid date (ArgumentError)行时都会收到此错误dates...

出了什么问题? today应该是一个有效的日期,我尝试在乘法周围加上括号,并在值字段周围,但仍然是错误。当我在irb中尝试它时,它工作得很好。文件顶部需要日期。

2 个答案:

答案 0 :(得分:1)

"1.5 years" => today <<  12*1.5

这是罪魁祸首。将其替换为"1.5 years" => today << 18,因为<<方法显然无法处理浮点数(在1.9.3中)。

答案 1 :(得分:0)

你忘记了require 'date'吗?

似乎适用于所有版本。

Here is a proof