gpt4 book ai didi

ruby-on-rails - 在 Rails 中记录用户事件

转载 作者:太空狗 更新时间:2023-10-30 01:52:00 25 4
gpt4 key购买 nike

我目前正在尝试为我的 Rails 应用程序的管理部分实现一个日志。这将允许管理员查看用户执行了哪些操作以及何时执行。例如“用户添加了新地址”、“用户将邮政编码从 X 更新为 Y”。

由于每个操作都可能涉及许多模型,而不仅仅是用户,我制作了一个日志模型,其中包含所有其他系统模型 ID、消息和日志代码的字段。

class CreateLogs < ActiveRecord::Migration
def self.up
create_table :logs do |t|
t.integer :user_id
t.integer :marker_id
t.integer :administrator_id
t.integer :group_id
t.integer :assignment_id
t.integer :submission_id
t.integer :code
t.text :message

t.timestamps
end
end

def self.down
drop_table :logs
end
end

我担心的是,例如,用户可以(假设)向他们的帐户添加分配,它被记录为

Log.create(:user_id => current_user.id, :assignment_id => the_assignment.id, :code => 342, :message => '')

(某处代码 342 对应于“用户创建了一个新地址”,因此不需要消息)

显然在日志 View 中,我可以从日志 ids/详细信息中提取相关的用户和地址信息,但是如果要删除该用户或地址,所有这些信息都将不可用,因此回顾日志, entry 基本上没用。

必须有更好的方法或已经存在的东西来帮助记录这样的系统事件并处理潜在的删除。

或者,我可以将整个条目存储为文本消息,但这不是很糟糕并且不必要地填满数据库吗?

如果有任何不清楚的地方,请告诉我,只是想记录应用程序操作/事件之前必须完成!

谢谢,

皮特

最佳答案

看看 ActiveRecord Versioning 上列出的 gem ,这可能就是您所需要的。

关于ruby-on-rails - 在 Rails 中记录用户事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7235796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com