我是Ruby的新手,我正在试图弄清楚以下为什么不按预期工作:
2.2.1 :010 > user_date = Date.today
=> Sun, 31 May 2015
2.2.1 :011 > user_date.today?
=> false
我使用Rails控制台并且命令一个接一个地执行(执行之间可能有一秒钟)。我确定我不理解,但不应该第二个命令返回true而不是false?如果没有,为什么? 提前谢谢!
编辑#1 - Arup要求的其他信息
2.2.1 :013 > puts user_date.method(:today?).owner
DateAndTime::Calculations
=> nil
编辑#2 - 所以我有预感。我在美国东部时间,当我遇到原始问题时,它已经到了午夜。我等了午夜,现在以下工作。
2.2.1 :004 > user_date = Date.today
=> Mon, 01 Jun 2015
2.2.1 :005 > user_date.today?
=> true
答案 0 :(得分:7)
Date.today
属于核心Ruby而today?
属于Rails。
Under the hood,today?
调用Date.current
(也称为Rails)而不是Date.today
。
Going a bit further,如果配置了Date.current
,我们会发现styleClass
将当前的Rails时区考虑在内。这应该是你不匹配的根源。