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)
即使在普通的Ruby中,你仍然可以做得更简单:
def expired?
Time.now > self.updated_at + DAY_IN_SECS
end
Run Code Online (Sandbox Code Playgroud)