From fe88782b231a1cf77e82772fc5d4252d499e2e86 Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Fri, 12 Jul 2024 15:18:29 -0600 Subject: [PATCH] MONGOID-5790/MONGOID-5791 Fix error caused by loading a referenced class prematurely It's such a pleasure to delete dead code...and even more so when the dead-code is responsible for a bug, simply by existing! --- lib/mongoid/touchable.rb | 6 ------ spec/mongoid/association_spec.rb | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/mongoid/touchable.rb b/lib/mongoid/touchable.rb index c1c93f825c..08ccfbd080 100644 --- a/lib/mongoid/touchable.rb +++ b/lib/mongoid/touchable.rb @@ -212,12 +212,6 @@ def touch_callback_statuses # # @return [ Symbol ] The method name. def define_relation_touch_method(name, association) - relation_classes = if association.polymorphic? - association.send(:inverse_association_classes) - else - [ association.relation_class ] - end - method_name = "touch_#{name}_after_create_or_destroy" association.inverse_class.class_eval do define_method(method_name) do diff --git a/spec/mongoid/association_spec.rb b/spec/mongoid/association_spec.rb index fca9131b32..4477c80cf7 100644 --- a/spec/mongoid/association_spec.rb +++ b/spec/mongoid/association_spec.rb @@ -15,6 +15,20 @@ ) end + context "when class_name references an unknown class" do + context "when loading" do + it "does not raise an exception" do + expect do + class AssocationSpecModel + include Mongoid::Document + + embedded_in :parent, class_name: 'SomethingBogusThatDoesNotExistYet' + end + end.not_to raise_exception + end + end + end + describe "#embedded?" do let(:person) do