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

时间:2012-07-08 13:58:25

标签: ruby-on-rails ruby rubygems acts-as-audited

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

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

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

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

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

是否有更优雅的方式与宝石提供的模型进行交互?

3 个答案:

答案 0 :(得分:6)

也许像

include Audited::Adapters::ActiveRecord::Audit

然后你可以做

@audits = Audit.all

我认为这应该有用......或者更好:

include Audited

答案 1 :(得分:3)

您可以使用

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

当我输入

时,我得到了结果
Audited.audit_class
  

DEPRECATION警告:不推荐使用audit_class,将删除它   来自Rails 5.0(Audited.audit_class现在总是经过审计::审计。这个   方法将被删除。)。

答案 2 :(得分:0)

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

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

@page = Page.first

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

@audit = @page.audits.first

然后,您可以在#class

上致电@audit

@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)