【发布时间】:2012-07-18 18:30:23
【问题描述】:
我有一个带有管理界面的 rails 应用程序,它允许用户对某些模型进行 CRUD 操作。客户想要一种方法来记录用户对每个模型做了什么。例如,用户删除客户等。他想跟踪谁删除/更新/创建了该客户。我正在考虑处理这个问题的最佳方法。我也很好奇那里是否有已经这样做的宝石。
这是我的想法。
- 我可以在每个模型中都有一个 created_by 和 updated_by 字段。问题 正在跟踪 deleted_by。一种方法是将客户标记为非活动 而不是删除实际记录。看起来很麻烦,还有 在我想要的每个模型中都会有很多重复 跟踪。
-
我可以创建一个 event_history 模型来跟踪以下字段(下面的类图)。 model_record_data 字段可以存储为数组或对象吗?您可以将对象作为文本存储在 mysql 字段中吗?对我来说,这种方法的好处是我可以调用这个模型并存储我将来创建的任何模型的动作。此外,如果有人出错,我可以将记录恢复到以前的状态。
event_history -> model_name model_record_data action #create/update/delete etc action_date #datetime user_id
如果您对此提供一些反馈,我们将不胜感激,我们将不胜感激。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1 data-modeling event-log