【问题标题】:Rails 4 + audited: Get audits for deleted objectRails 4 + 已审核:获取已删除对象的审核
【发布时间】:2018-05-11 07:51:43
【问题描述】:

我在我的项目中使用Audited Gem,但我不明白如何获取已删除对象的审计跟踪。他们的例子表明:

user = User.create!(name: "Steve")
user.audits.count # => 1
user.update_attributes!(name: "Ryan")
user.audits.count # => 2
user.destroy
user.audits.count # => 3

但如果我只知道缺少一个用户,我如何访问audit,因为我需要访问被审计的对象?

【问题讨论】:

  • 我没有使用过audited,但如果您知道已删除记录的id,您可以执行User.new(id: deleted_id) 并对该对象调用审核...或者您可以检查@987654327 @ 表本身...确定id 的存储位置并能够识别destroy 审计记录应该不难。
  • 你能告诉我你在user.audits得到了什么吗?
  • @SteveTurczyn 我似乎无法通过终端检查任何审计表,但我可以使用 PSequel 之类的工具查看我的数据库。
  • @uzaif 我不认为你明白这个问题。如果对象在几天前被删除,我没有user 对象可以调用audits。我所知道的是它丢失了,我无法查询Audit 以获取给定类型的审计。
  • 如果有一个迁移创建了审计表,并且如果有一个表你可以通过直接检查数据库看到,你应该能够创建自己的模型来访问它...@987654334 @ 然后你可以删除一个用户,看看被删除的审计记录是什么样子的,然后你就知道如何在审计中搜索被删除的记录了。

标签: ruby-on-rails audit


【解决方案1】:

如果你知道用户的id,可以试试:

Audited::Adapters::ActiveRecord::Audit.where(auditable_type: 'User', auditable_id: user_id)

对于创建、更新、销毁等特定操作,您可以尝试它们的作用域 - 创建、更新、销毁。我找到了on their github repo

【讨论】:

    猜你喜欢
    • 2016-03-08
    • 2012-07-08
    • 2018-11-28
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 2011-06-06
    相关资源
    最近更新 更多