2016-05-11 53 views

回答

1

附加屬性「FIRST_CHANGE」更改爲真或假,然後在模型中這樣寫

before_update :check_changes 

def check_changes 
    if self.<boolean_attribute>.is_changed? and first_change.nil? 
    self.update(first_change: Time.now) 
    end 
end 

回調這以後還可以檢查布爾屬性何時更改。

0

您可以將布爾屬性封裝在不同的模型中,從那裏您可以輕鬆追蹤特定字段初始設置或更新的時間。在你當前的模型中,你不能追蹤特定屬性的變化狀態,只能看到整個對象,但這不是你想要的。在該表中,這將節省布爾屬性的每一個第一次更改的時間戳

0

好吧,貌似你基本上想要git的功能在ActiveRecord記錄中。

有兩種方式

  • 使用一個單獨的山坳像changed_date。每當field首次更改時更新它。
    • 我推薦這個,如果你的要求很簡單。不要使用較重的寶石。
  • VestalVersionPaperTrail
    • 使用庫這些都有助於使跟蹤您的每一個記錄活動。
    • 你可以保持每一個變化,什麼樣的改變,當
    • 也可以恢復你的記錄任何時間點又改爲
0

我覺得有喜歡兩種方式的軌道上面的答案建議做一個單獨的字段,並在第一次更改字段時添加日期或

您可以使用Public Activity gem來記錄帶有參數的所有模型活動。 它創建一個基於此表的活動表,您可以獲取該字段的第一次更改時的日期,但這是一個漫長的過程

相關問題