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 = {})
2424 collection_action :sort , :method => :post do
2525 resource_name = ActiveAdmin ::SortableTree ::Compatibility . normalized_resource_name ( active_admin_config . resource_name )
2626
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+
2731 records = [ ]
2832 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 ] ]
3134 end
3235
3336 errors = [ ]
You can’t perform that action at this time.
0 commit comments