From f873b14214de8f1817ef53febf516fb9f5210efd Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Wed, 30 Mar 2016 17:07:27 +0300 Subject: [PATCH] story#115762063 - children log method doesn't save ids marked for destruction --- app/models/domain.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index 29a53ead3..a7815c9ce 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -725,14 +725,18 @@ class Domain < ActiveRecord::Base # rubocop: enable Metrics/CyclomaticComplexity # rubocop: enable Metrics/PerceivedComplexity + + # small optimization that we'are using to_a if it was done already + # otherwise just getting ids def children_log - log = HashWithIndifferentAccess.new - log[:admin_contacts] = admin_contact_ids - log[:tech_contacts] = tech_contact_ids - log[:nameservers] = nameserver_ids + log = HashWithIndifferentAccess.new + types = %i(admin_contacts tech_contacts nameservers dnskeys domain_statuses) + + types.each do |rel| + ids = send(rel).loaded? ? send(rel).reject(&:marked_for_destruction?).map(&:id) : send(rel).pluck(:id) + log[rel] = ids + end log[:registrant] = [registrant_id] - log[:domain_statuses]= domain_status_ids - log[:dnskeys] = dnskey_ids log end