2010-11-02 3 views
1

У меня есть метод, срок действия которого истек? который просто предназначен для проверки того, было ли это более 24 часов с момента обновления моего объекта, и если так, верните true. Вот мой метод, но хотя он работает, он чувствует себя грязным, может ли кто-нибудь подумать о лучшем способе достижения моей цели?Подробнее Ruby-esque способ кодировать это?

DAY_IN_SECS = 86400 

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

ответ

12

Вы можете использовать active_support функциональность, так:

def expired? 
    self.updated_at > 1.day.ago 
end 
3

Вы работаете с Rails, так что вы можете использовать методы Рельсы Date/Time :).

Для вашей проблемы, мне это нравится:

def expired? 
    updated_at.advance(:days => 1).past? 
end 
5

Даже в простом Руби еще можно было сделать проще:

def expired? 
    Time.now > self.updated_at + DAY_IN_SECS 
end 
Смежные вопросы