6

audited用来跟踪一个名为Page. 我希望能够找到与某个用户相关的所有审计(通过user_id在审计表中)。

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

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

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

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

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

4

3 回答 3

7

也许像

include Audited::Adapters::ActiveRecord::Audit

然后你可以做

@audits = Audit.all

?

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

include Audited

于 2012-07-08T15:08:49.020 回答
3

您可以访问所有审计记录

Audited::Audit.all

我输入的时候得到了结果

Audited.audit_class

弃用警告:audit_class 已弃用,将从 Rails 5.0 中删除(Audited.audit_class 现在始终为 Audited::Audit。此方法将被删除。)。

于 2016-10-07T05:50:26.927 回答
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)

于 2017-08-03T14:17:52.653 回答