2013-07-16 56 views
0

我正在做一個簡單的任務管理器,除了completed:boolean列我有一個completed_time:datetime列,我需要存儲時間,當用戶標記任務完成。更新其中一個參數時,其他更新

有一個解決方案,hidden_field和JS填充當前時間,當用戶檢查任務,完成,但我認爲這不是一個好主意,它必須在控制器或模型級別完成。

所以,現在我有這個在我Task模型:

before_update :add_completed_time 
. 
. 
. 
def add_completed_time 
    if self.completed? 
    self.completed_time = DateTime.now 
    end 
end 

但更新每次completed_time列,當任務完成後,更新(對前,當我將其標記爲archived)。

如何在任務被標記爲完成時調用此方法?

謝謝!

回答

0

只需添加一個條件來檢查completed_time是否已經有值。如果是,請不要更新它。

def add_completed_time 
    if self.completed? and self.completed_time == nil 
    self.completed_time = DateTime.now 
    end 
end