簡體   English   中英

跟蹤誰在Rails中做了什么?

[英]Keeping track of who did what in Rails?

什么是跟蹤誰在中型Rails應用程序中做了什么的最佳實踐方法? 攔截所有數據庫讀/寫並將其存儲在另一個表中?

您可以非常簡單地調整acts_as_versioned以記錄有關哪個用戶執行操作的信息。 我建議查看該插件,因為版本控制很少是一個壞主意。

您可以在回調中使用Observers ,例如創建/更新/刪除多個模型,並將數據保存到另一個表/模型,但如果您想擁有類似wiki的站點,則acs_as_versioned是更好的選擇。

如果您想“自己動手”解決方案,可以在插入/更新/刪除時實現數據庫觸發器,以更新單獨的表。 否則,可以購買和配置多個商業支持的數據審計應用程序,以便在數據庫級別為您跟蹤和報告這些活動。

而不是重新實現,你應該嘗試一些像acts_as_audited這樣的插件

acts_as_audited是一個ActiveRecord擴展,用於在審計表中記錄模型的所有更改。

PaperTrail

PaperTrail可讓您跟蹤模型數據的變化。 它適用於審計或版本控制。 您可以看到模型如何查看其生命周期中的任何階段,將其還原為任何版本,甚至在銷毀之后取消刪除它。

哪個適合您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM