如何在Rails控制台查看audited生成的审计记录,调用Audit.all报错如何解决
报错原因
你使用的audited-activerecord ~> 4.0版本默认将审计模型封装在了Audited命名空间下,不存在全局的Audit常量,所以直接调用Audit.all会触发未初始化常量错误。
正确查询方法
- 方法1:使用全限定名查询所有审计记录
直接在控制台执行以下代码即可:Audited::Audit.all - 方法2:查询单条模型实例的关联审计记录
如果你要查询某一个MyObject实例的审计记录,可直接调用模型自带的关联方法,不需要写全命名空间:# 先获取对应实例 my_object = MyObject.find(目标实例ID) # 直接获取该实例的所有审计记录 my_object.audits - 方法3:配置全局Audit常量(可选)
如果你希望可以直接使用Audit调用模型,可以新增Rails初始化文件配置别名:- 在
config/initializers/目录下新建audited.rb文件 - 文件中添加如下内容:
Audit = Audited::Audit - 重启Rails控制台/服务后,就可以直接用
Audit.all等方法查询审计记录了。
- 在
注意事项
如果执行上述操作后提示找不到audits表,请先确认你已经执行了audited的数据库迁移:
rails generate audited:install rake db:migrate
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

