2014-04-11 10 views
0

我正在开发一个Rails4应用程序,我在模型中有很多日期属性。例如;Rails4中基于日期的自动操作

first_payment_date 
last_payment_date 
first_application_date 
last_application_date 
first_result_validation_date 
last_result_validation_date 

我想要自动化的东西一点点,想用这些日期我的应用程序的行为。例如,用户将无法在last_payment_date之后进行付款,或者他们将无法在first_application_date之前创建应用程序。

什么是规划这种事情的最佳方法?我听说过“状态机”和state_machine GEM,但我不确定这对我来说是否正确。

谢谢。

回答

1

如果这些日期是在User模型,你可以创建几个辅助方法里面根据自己的条件来回报falsetrue

def can_deliver_payment? 
    self.last_payment_date > Date.today 
end 

def can_make_application? 
    self.first_application_date > Date.today 
end 

# etc 

所以,现在当你有User一个实例,你可以以更可读的方式检查这些条件。

+0

这些日期在我的考试模式。 – msdundar