File tree Expand file tree Collapse file tree 1 file changed +5
-2
lines changed
lib/active_admin/sortable_tree Expand file tree Collapse file tree 1 file changed +5
-2
lines changed Original file line number Diff line number Diff line change @@ -24,10 +24,13 @@ def sortable(options = {})
24
24
collection_action :sort , :method => :post do
25
25
resource_name = ActiveAdmin ::SortableTree ::Compatibility . normalized_resource_name ( active_admin_config . resource_name )
26
26
27
+ # Query all resources at once to avoid N+1
28
+ ids = ( params [ resource_name ] . keys + params [ resource_name ] . values ) . compact . uniq
29
+ resources = Hash [ resource_class . where ( id : ids ) . map { |r | [ r . id . to_i , r ] } ]
30
+
27
31
records = [ ]
28
32
params [ resource_name ] . each_pair do |resource , parent_resource |
29
- parent_resource = resource_class . find ( parent_resource ) rescue nil
30
- records << [ resource_class . find ( resource ) , parent_resource ]
33
+ records << [ resources [ resource . to_i ] , resources [ parent_resource . to_i ] ]
31
34
end
32
35
33
36
errors = [ ]
You can’t perform that action at this time.
0 commit comments