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