我在比较ruby on rails中的两个日期时收到错误,我使用PostgreSQL作为我的数据库。
exp_date = ps.expiry_date
if Date.today < Date.parse(exp_date)
Good
else
Expired
exp_date
变量包含数据库中的2014-07-31
值。
但是,当我运行此代码时,它会发出此错误&#34; can't convert Date into String
&#34;在我的代码片段的第二行。但是,当直接使用日期为2014-07-31
时,它正在运作。请帮我找出我错在哪里。
答案 0 :(得分:0)
当Date::parse
将Date
对象作为参数时,获取错误的唯一可能原因。如下所示: -
Date.parse(Date.today)
# TypeError: no implicit conversion of Date into String
我很确定,ps.expiry_date
正在为您提供Date
个对象,而不是String
。由于您的数据库已经将数据作为Date
对象提供给您,因此您不需要将其解析为Date
。只需写为:
Date.today < exp_date