2012-07-19 58 views
1

我有一個管理界面的rails應用程序,允許用戶在某些模型上執行CRUD操作。客戶想要一種方法來記錄用戶對每個模型做了什麼。例如,用戶刪除客戶等。他想跟蹤誰刪除/更新/創建了該客戶。我正在琢磨處理這個問題的最佳方法。我也很好奇,如果有一個寶石已經這樣做。Rails 3.2事件記錄

這是我的想法。

  1. 我可以在每個模型中有一個created_by和updated_by字段。問題 正在跟蹤deleted_by。一種方法是標記客戶不活動 而不是刪除實際記錄。似乎繁瑣,並有 會在每個和每個模型我想 軌道很多重複。
  2. 我可以創建一個跟蹤以下字段的event_history模型(下面的類圖)。 model_record_data字段可能以數組或對象的形式存儲?你可以將對象作爲文本存儲在mysql字段中嗎?這種方法的好處在於,我可以調用此模型並存儲來自我將來創建的任何模型的操作。此外,如果有人犯了錯誤,我可以將記錄恢復到以前的狀態。

    event_history -> 
        model_name 
        model_record_data 
        action    #create/update/delete etc 
        action_date  #datetime 
        user_id 
    

我希望在此方面的反饋和你的幫助,將不勝感激。

回答

3

看看這個寶石(audited)。我相信它確實在問什麼。

​​3210

+0

這很完美! – ctilley79 2012-07-19 14:43:42