如何过滤审计不为零的审计?
How to filter Audits with auditables not nil?
我在 Rails 申请的 Ruby 中使用审计 gem。我有审计订单、发票等可审计项。我的订单和发票模型是这样开始的:-
class Order < ApplicationRecord
audited
has_associated_audits
因为has_associated_audits,Audit[i].auditable 会给我order/invoice对应的第i个Audit。现在一些订单被删除了,Audit[i].auditable 变成了 nil。我如何只获得 Audit[i].auditable 不为 nil 的审计?
因为 Auditable 关系是多态的,您不能只是加入 table 然后继续前进。相反,您将需要一些原始的 SQL 魔法。这是一个使用我自己的代码库中的东西的示例,请根据您的需要进行调整:
Audited::Audit.joins('INNER JOIN titles ON audits.auditable_id = titles.id').where(auditable: nil, auditable_type: 'Title')
改编自这个伟大的 SO post 此处:ActiveRecord - querying polymorphic associations
我在 Rails 申请的 Ruby 中使用审计 gem。我有审计订单、发票等可审计项。我的订单和发票模型是这样开始的:-
class Order < ApplicationRecord
audited
has_associated_audits
因为has_associated_audits,Audit[i].auditable 会给我order/invoice对应的第i个Audit。现在一些订单被删除了,Audit[i].auditable 变成了 nil。我如何只获得 Audit[i].auditable 不为 nil 的审计?
因为 Auditable 关系是多态的,您不能只是加入 table 然后继续前进。相反,您将需要一些原始的 SQL 魔法。这是一个使用我自己的代码库中的东西的示例,请根据您的需要进行调整:
Audited::Audit.joins('INNER JOIN titles ON audits.auditable_id = titles.id').where(auditable: nil, auditable_type: 'Title')
改编自这个伟大的 SO post 此处:ActiveRecord - querying polymorphic associations