ruby on rails 3.0 TimeWithZone添加小时数无法强制进入Fixnum

akh*_*lsa 3 ruby time ruby-on-rails fixnum ruby-on-rails-3

我的代码中出现了一个非常奇怪的错误,我希望有人可以帮助我.我有一个模型,它有一个created_at列和我创建的持续时间列.持续时间只是一个整数,假定为小时数.然后我尝试将当前时间与created_at时间+持续时间进行比较,以查看该行是否已过期.我的代码看起来像这样:

@expire_time = purchase.duration.hours + purchase.created_at
if(@expire_time > Time.current)
  #do some stuff if the current time isn't greater than the expiration time
end
Run Code Online (Sandbox Code Playgroud)

当我在控制台中运行第一行时它工作正常,但是当我保存我的代码并通过它的部分路径调用它时,我在该行得到以下错误.

ActiveSupport :: TimeWithZone无法强制进入Fixnum

有没有人对可能出现的问题/如何正确地进行这种比较有任何想法?

akh*_*lsa 6

我发现了问题......

这不起作用:purchase.duration.hours + purchase.created_at

但这样做:purchase.created_at + purchase.duration.hours