已审核的宝石 添加关于销毁的评论

Posted

技术标签:

【中文标题】已审核的宝石 添加关于销毁的评论【英文标题】:Audited Gem Add Comment on Destroy 【发布时间】:2021-11-19 19:58:37 【问题描述】:

我已实施 Audited,一切正常。我唯一不知道的是如何在删除记录时添加“audit_comment”。我可以在更新或创建时成功添加它,但我没有看到任何可以让我在删除时添加评论的内容。

我的示例是我可以直接删除记录,也可以通过相关关联的回调将其删除。所以我想根据情况在审核中添加评论...“直接由用户删除”或“通过父级删除删除”

我是否遗漏了审核文档中的某些内容?

【问题讨论】:

它会跳过正常的 Rails 删除回调吗? 它不会跳过它们,所有正常的 rails 删除回调仍然有效。但是向审计记录添加评论的方法是:record.update_attributes(name: 'something', audit_comment: 'Making a comment') 我们不能在删除/销毁调用中这样做。 但是您可以随时通过设置其audit_comment 字段来更新列。 【参考方案1】:

你需要在销毁之前添加注释,如下所示:

model.audit_comment = 'some random comment'
model.destroy

按照这里的描述https://github.com/collectiveidea/audited/blob/master/lib/audited/auditor.rb#L11

在创建、更新或销毁操作之前将审计评论集 model.audit_comment 存储到您的评论中。

更多关于这里的代码https://github.com/collectiveidea/audited/blob/master/lib/audited/auditor.rb#L303

def audit_destroy
  unless new_record?
    write_audit(action: "destroy", audited_changes: audited_attributes, comment: audit_comment)
  end
end

【讨论】:

哇……表明我需要走开。我当然可以这样做。感谢您指出显而易见的解决方案……?

以上是关于已审核的宝石 添加关于销毁的评论的主要内容,如果未能解决你的问题,请参考以下文章

关于PHP 使用 unset 销毁变量 但是 没有销毁内存的 记录

指向已销毁类失效的指针

即使 Activity 已销毁,AsyncTask 也不会停止

销毁对已删除迁移的引用

不适用于经过审核的 4.7 gem 更新模型

已销毁的 Vue 组件的 Mixin 仍在监听事件