ruby-on-rails - ruby on rails 3.0 TimeWithZone 添加时间无法强制进入 Fixnum

标签 ruby-on-rails ruby ruby-on-rails-3 time fixnum

我的代码中出现了一个非常奇怪的错误,我希望有人能帮助我解决这个问题。我有一个模型,它有一个 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

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

ActiveSupport::TimeWithZone 不能强制转换为 Fixnum

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

最佳答案

我发现了问题...

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

但这确实: purchase.created_at + purchase.duration.hours

关于ruby-on-rails - ruby on rails 3.0 TimeWithZone 添加时间无法强制进入 Fixnum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12774620/

相关文章:

ruby-on-rails - RSPEC:如何测试 Controller 操作是否返回了 JSON Web token

ruby-on-rails - 这些 Ruby 版本 : 中存在 `heroku' 命令

ruby-on-rails - 我如何使用ruby将字节转换为base64

ruby-on-rails - 为什么在检查依赖项时使用 GemSpec + GemFile?

ruby-on-rails - 是否可以使用具有两个能力等级的康康

mysql - 获取随机记录

ruby-on-rails - attr_accessor 和类实例调试

ruby-on-rails - 无法访问 http_basic block 内的任何 Grape::API 方法/对象

ruby-on-rails - rails : An elegant way to display a message when there are no elements in database

ruby-on-rails - Rails 3 - 未定义方法 `map' 为 nil :NilClass for my own validation