From d56491ae816cac88b7051495794cdaed9e412047 Mon Sep 17 00:00:00 2001 From: Vanboom Date: Wed, 22 Jul 2020 14:45:26 -0500 Subject: [PATCH] issue #34, handle nil value of original value of embedded relation --- lib/mongoid/history/attributes/update.rb | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/lib/mongoid/history/attributes/update.rb b/lib/mongoid/history/attributes/update.rb index 825f93c..5b613e7 100644 --- a/lib/mongoid/history/attributes/update.rb +++ b/lib/mongoid/history/attributes/update.rb @@ -90,14 +90,8 @@ def embeds_many_changes_from_parent(relation, value) relation = trackable_class.database_field_name(relation) relation_class = trackable_class.relation_class_of(relation) paranoia_field = Mongoid::History.trackable_class_settings(relation_class)[:paranoia_field] - - # DVB only process if the original value of the embedded relation is not nil - original_value = if value[0].present? - value[0].reject { |rel| rel[paranoia_field].present? } - .map { |v_attrs| format_embeds_many_relation(relation, v_attrs) } - else - nil - end + original_value = (value[0] || []).reject { |rel| rel[paranoia_field].present? } + .map { |v_attrs| format_embeds_many_relation(relation, v_attrs) } modified_value = value[1].reject { |rel| rel[paranoia_field].present? } .map { |v_attrs| format_embeds_many_relation(relation, v_attrs) } return if original_value == modified_value