Rails中时间差计算命令报错是否为预期行为?原因是什么?
问题
这是否属于预期行为?
复现步骤
- 打开Rails控制台
- 输入以下命令并查看输出:
命令1
Time.zone.yesterday - Time.zone.now
输出:
/Users/manishsharma/.rvm/gems/ruby-3.1.2/gems/activesupport-7.0.3.1/lib/active_support/core_ext/date/calculations.rb:104:in `-': expected numeric (TypeError)
命令2
Time.zone.now - Time.zone.yesterday
输出:
3.1.2 :002 > Time.zone.now - Time.zone.yesterday /Users/manishsharma/.rvm/gems/ruby-3.1.2/gems/activesupport-7.0.3.1/lib/active_support/core_ext/time/calculations.rb:209:in `ago': undefined method `-@' for Wed, 21 Sep 2022:Date (NoMethodError) since(-seconds) ^ Did you mean? - /Users/manishsharma/.rvm/gems/ruby-3.1.2/gems/activesupport-7.0.3.1/lib/active_support/core_ext/time/calculations.rb:294:in `-': can't convert Date into an exact number (TypeError)
命令3
Time.zone.now - Time.zone.yesterday
输出:
/Users/manishsharma/.rvm/gems/ruby-3.1.2/gems/activesupport-7.0.3.1/lib/active_support/core_ext/date/calculations.rb:104:in `-': expected numeric (TypeError)
命令4
3.1.2 :003 > Time.zone.now - Date.yesterday
输出:
/Users/manishsharma/.rvm/gems/ruby-3.1.2/gems/activesupport-7.0.3.1/lib/active_support/core_ext/time/calculations.rb:209:in `ago': undefined method `-@' for Wed, 21 Sep 2022:Date (NoMethodError) since(-seconds) ^ Did you mean? - /Users/manishsharma/.rvm/gems/ruby-3.1.2/gems/activesupport-7.0.3.1/lib/active_support/core_ext/time/calculations.rb:294:in `-': can't convert Date into an exact number (TypeError)
系统配置
- Rails版本: 7.0.3.1
- Ruby版本: 3.1.2
内容的提问来源于stack exchange,提问作者Manish Sharma
相关产品推荐
相关产品推荐

