我正在使用audited
来跟踪名为Page
的模型的更改。我希望能够找到与某个用户相关的所有审核(通过审核表中的user_id
)。
我该怎么做?到目前为止,我发现访问Audit
模型的唯一方法是:
@audits = Audited::Adapters::ActiveRecord::Audit.all
这似乎不是正确的做事方式。
尝试@audits = Audit.all
会出现Uninitialized constant
错误。
是否有更优雅的方式与宝石提供的模型进行交互?
答案 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)