已审核,查找属于用户的审核
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)
【讨论】:
以上是关于已审核,查找属于用户的审核的主要内容,如果未能解决你的问题,请参考以下文章