更多Ruby-esque方式来编码这个?

The*_*hop 1 ruby refactoring metaprogramming ruby-on-rails

我有一个方法,我打电话过期?这只是为了检查自我的对象更新后是否超过24小时,如果是这样,则返回true.这是我的方法,但虽然它有效但感觉很脏,有人能想出更好的方法来实现我的目标吗?

DAY_IN_SECS = 86400

def expired?
  return true unless (Time.now <=> self.updated_at + DAY_IN_SECS) == -1
end
Run Code Online (Sandbox Code Playgroud)

Wil*_*iam 12

您可以使用该active_support功能,因此:

def expired?
  self.updated_at > 1.day.ago
end
Run Code Online (Sandbox Code Playgroud)


Dig*_*oss 5

即使在普通的Ruby中,你仍然可以做得更简单:

def expired?
  Time.now > self.updated_at + DAY_IN_SECS
end
Run Code Online (Sandbox Code Playgroud)