Skip to content

Commit 9e06d33

Browse files
committed
Update Preloader::Assocation::LoaderQuery to compare using scope.name
Using scope.table_name can result in missing preloaded associations if you're preloading polymorphic associations across multiple databases with the same table names. By using the scope name, we're comparing class names, which are guaranteed to be different even if the table_name is equivalent.
1 parent 2c2dde3 commit 9e06d33

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

activerecord/lib/active_record/associations/preloader/association.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ def initialize(scope, association_key_name)
1616

1717
def eql?(other)
1818
association_key_name == other.association_key_name &&
19-
scope.table_name == other.scope.table_name &&
19+
scope.name == other.scope.name &&
2020
scope.values_for_queries == other.scope.values_for_queries
2121
end
2222

2323
def hash
24-
[association_key_name, scope.table_name, scope.values_for_queries].hash
24+
[association_key_name, scope.name, scope.values_for_queries].hash
2525
end
2626

2727
def records_for(loaders)

0 commit comments

Comments
 (0)