【问题标题】:Rails: error when adding two ActiveSupport::Duration objectsRails:添加两个 ActiveSupport::Duration 对象时出错
【发布时间】:2017-05-31 23:25:46
【问题描述】:

在 Rails 控制台(Rails 5.0.1)中,我有一个 ActiveSupport::Duration 对象表示时间间隔,在本例中为 12 分钟:

x = ActiveSupport::Duration.parse("P0Y0M0DT0H12M")

我想添加一个随机的分钟数,所以我创建了另一个ActiveSupport::Duration 对象:

y = ActiveSupport::Duration.parse("P0Y0M0DT0H3M")

根据the docs,我希望能够简单地使用+ 运算符添加它们并执行x+y,但这会导致:

NoMethodError: undefined method '+' for {:years=>0, :months=>0, :days=>0, :hours=>0, :minutes=>12}:Hash

我哪里错了?为什么它认为它们是哈希?

【问题讨论】:

    标签: ruby-on-rails operators ruby-on-rails-5 activesupport


    【解决方案1】:

    这是由parts being hashified 引入的错误,它似乎是partial backport from 5.1 to 5.0.3。您可以将 Rails 版本更新为 5.1.x,或先将值强制转换为数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多