Skip to content

Commit 8bd3ab2

Browse files
committed
Rewrite N+1 query
1 parent cadeb88 commit 8bd3ab2

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

lib/active_admin/sortable_tree/controller_actions.rb

+4-2
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ 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+
resources = Hash[resource_class.where(id: params[resource_name].keys).map { |r| [r.id, r] }]
29+
2730
records = []
2831
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]
32+
records << [resources[resource], resources[parent_resource]]
3133
end
3234

3335
errors = []

0 commit comments

Comments
 (0)