From 71322c7d010e0697e2c9ddaaf5d6bf3ec2608af2 Mon Sep 17 00:00:00 2001 From: Brian Bugh Date: Sun, 20 May 2018 09:24:34 -0500 Subject: [PATCH] Fixes preload_scope when association is polymorphic Presently, the `preload_scope` check fails because `model.reflect_on_association(assocation).klass` will never be valid for polymorphic associations. This raises an ArgumentError if the association is polymorphic and preload_scope is applied, but in all other ways it behaves the same.e --- lib/graphql/preload/loader.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/graphql/preload/loader.rb b/lib/graphql/preload/loader.rb index bd0554b..08182e3 100644 --- a/lib/graphql/preload/loader.rb +++ b/lib/graphql/preload/loader.rb @@ -39,7 +39,10 @@ def perform(records) end private def preload_scope - scope if scope.try(:klass) == model.reflect_on_association(association).klass + return nil unless scope + reflection = model.reflect_on_association(association) + raise ArgumentError, 'Cannot specify preload_scope for polymorphic associations' if reflection.polymorphic? + scope if scope.try(:klass) == reflection.klass end private def validate_association