在轨道上的红宝石中比较两个日期给出错误 - “无法将日期转换为字符串”

时间:2014-07-19 06:50:40

标签: ruby-on-rails ruby postgresql date haml

我在比较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时,它正在运作。请帮我找出我错在哪里。

1 个答案:

答案 0 :(得分:0)

Date::parseDate对象作为参数时,获取错误的唯一可能原因。如下所示: -

Date.parse(Date.today)
# TypeError: no implicit conversion of Date into String

我很确定,ps.expiry_date正在为您提供Date个对象,而不是String。由于您的数据库已经将数据作为Date对象提供给您,因此您不需要将其解析为Date。只需写为:

Date.today < exp_date