1
0
mirror of https://github.com/meineerde/redmine.git synced 2025-12-24 01:11:12 +00:00

Get version ids with a single query (was n+1).

git-svn-id: http://svn.redmine.org/redmine/trunk@13694 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2014-12-02 20:32:09 +00:00
parent 22a9742216
commit 1059f9a99e

View File

@ -334,12 +334,13 @@ class Project < ActiveRecord::Base
def archive
# Check that there is no issue of a non descendant project that is assigned
# to one of the project or descendant versions
v_ids = self_and_descendants.collect {|p| p.version_ids}.flatten
if v_ids.any? &&
version_ids = self_and_descendants.joins(:versions).pluck("#{Version.table_name}.id")
if version_ids.any? &&
Issue.
includes(:project).
where("#{Project.table_name}.lft < ? OR #{Project.table_name}.rgt > ?", lft, rgt).
where("#{Issue.table_name}.fixed_version_id IN (?)", v_ids).
where(:fixed_version_id => version_ids).
exists?
return false
end