Как написать именованную область для Аудитов, у которых нет аудиторов?
Я использую Audit
драгоценный камень в моем приложении Ruby on Rails. Я использовал полиморфную связь между ревизиями и моими Orders
,
Теперь я хочу написать именованную область, чтобы получать только те Аудиты, для которых Заказ не удален (Это происходит потому, что Заказ удаляется после создания Аудита
<Audit id:110,
auditable_id:4,
auditable_type:"Order",
user_id:1,
user_type:"User",
username:nil,
action:"create",
created_at:"2018-04-07 09:06:20">,
#<Audit id:49,
auditable_id:3,
auditable_type:"Order",
user_id:3,
user_type:"User",
username:nil,
action:"create",
created_at:"2018-04-06 12:28:41">
Теперь, когда я ввожу Audit.first.auditable в моей консоли, я получаю nil как порядок, соответствующий тому, что Audit удален, и когда я вхожу в Audit.second.auditable, я получаю порядок, соответствующий второму Audit.
Я хочу отфильтровать свой Аудит так, чтобы Аудиты того типа, где был удален заказ, были удалены (например, Audit.first)
1 ответ
Решение
Вы можете сделать это так:
Audit.rb
scope :with_active_orders, -> { joins(:order) }
Который вернется Audits
если есть хотя бы один Order
,