已审核,查找属于用户的审核

Posted

技术标签:

【中文标题】已审核,查找属于用户的审核【英文标题】:audited, Look up audits belonging to a user 【发布时间】:2012-07-08 04:19:21 【问题描述】:

我正在使用audited 来跟踪名为Page 的模型的更改。我希望能够找到与某个用户关联的所有审计(通过审计表中的user_id)。

我该怎么做?到目前为止,我发现访问Audit 模型的唯一方法是这样的:

@audits = Audited::Adapters::ActiveRecord::Audit.all

这似乎不是正确的做事方式。

尝试@audits = Audit.all 会出现Uninitialized constant 错误。

有没有更优雅的方式与 gems 提供的模型交互?

【问题讨论】:

【参考方案1】:

可能是这样的

include Audited::Adapters::ActiveRecord::Audit

然后你就可以了

@audits = Audit.all

?

我认为这应该可行......或者更好:

include Audited

【讨论】:

是的,这项工作包括 Audited,看一个简单的例子:class Audit 值得注意的是,您可以执行 Audited.audit_class,然后您可以执行 Audited.audit_class.where("...") 之类的操作【参考方案2】:

您可以使用

访问所有审计记录
Audited::Audit.all

我在输入时得到了结果

Audited.audit_class

弃用警告:audit_class 已弃用并将被删除 从 Rails 5.0 (Audited.audit_class 现在总是 Audited::Audit。这个 方法将被删除。)。

【讨论】:

【参考方案3】:

我知道这不是一种有效的方法,但我就是这样做的。

在 Rails 控制台中,我检索了一条我知道已经过审核的记录。

@page = Page.first

然后我检索该记录的第一次审核。

@audit = @page.audits.first

然后您可以在@audit 上致电#class

@audit.class

结果:

Audited::Adapters::ActiveRecord::Audit(id: integer, created_at: 
datetime, updated_at: datetime, auditable_id: integer, auditable_type: 
string, user_id: integer, user_type: string, username: string, action: 
string, audited_changes: text, version: integer, comment: string, 
full_model: text, remote_address: string, associated_id: integer, 
associated_type: string, request_uuid: string)

Audited::Adapters::ActiveRecord::Audit 是类名,然后您可以在搜索中使用它。

audits = Audited::Adapters::ActiveRecord::Audit.where(:user_id => 8675309)

【讨论】:

以上是关于已审核,查找属于用户的审核的主要内容,如果未能解决你的问题,请参考以下文章

如何用PHP做到页面注册审核

php注册审查

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

已审核的 gem 未审核删除关系

APP审核关于3.2.1金融资格的审核回复苹果

ERP合同管理二(二十七)