Rails: 添加两个 ActiveSupport::Duration 对象时出错
Rails: error when adding two ActiveSupport::Duration objects
在 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
我哪里错了?为什么它认为它们是哈希值?
这是 parts being hashified, which appears to be a partial backport from 5.1 to 5.0.3 引入的错误。您可以将 Rails 版本更新为 5。1.x,或者先将值强制恢复为数字。
在 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
我哪里错了?为什么它认为它们是哈希值?
这是 parts being hashified, which appears to be a partial backport from 5.1 to 5.0.3 引入的错误。您可以将 Rails 版本更新为 5。1.x,或者先将值强制恢复为数字。