2012-05-12 84 views
0

我有一個簡單的問題:想象一個具有1:N事件的日曆。在某些時候,我想知道兩個時間戳之間的變化。給定時間戳上的多個活動記錄對象之間的差異

  • 哪些事件被創建,更新或銷燬?
  • 我不需要知道在第一個時間戳之後創建並在第二個時間戳之前銷燬的事件。

我嘗試用papertrail,但在我看來,應該有這樣做的簡單的方法。

簡單吧? :)

UPDATE:獲取創建和更新記錄:

Calendar.last.events.where("created_at >= :timestamp OR updated_at >= :timestamp", {timestamp: timestamp}) 

UPDATE:

PaperTrail::EventVersions.where("created_at >= :timestamp", { timestamp: DateTime.now}).where(calendar_id: calendar.id, event: "destroy") 

注:您需要添加元數據參考通過papertrail獲取銷燬的記錄(定製)版本模型。

更新: @ ck3g建議「軟刪除」,看完這個post後。我決定重新考慮我的模型。含義:如果事件有一個用戶分配給它,我必須「取消」(不刪除)該事件。如果它沒有關聯,我可以安全地銷燬事件。

回答

0

我認爲你應該執行某種軟刪除(歸檔)記錄。你可以在網上找到一堆實現。稍後,您可以通過deleted_at找到記錄。

+0

好點,看完這個http://railspikes.com/2010/2/26/acts-as-archive我決定重新考慮我的模型(事件被取消VS事件)。 – fluxsaas