diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2016-10-02 11:45:39 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2016-10-02 11:45:39 +0000 |
commit | ddf249d7b055baf04aa592d3ea91f1c5acac260a (patch) | |
tree | f10a622368363b9dbba3e105b9e25d3da0e2c4b8 /app/models | |
parent | 19934ec2db4ede2184eb74bd4850510dc0af0265 (diff) | |
download | redmine-ddf249d7b055baf04aa592d3ea91f1c5acac260a.tar.gz redmine-ddf249d7b055baf04aa592d3ea91f1c5acac260a.zip |
Speedup remove_inherited_roles (#22850).
Patch by Pavel Rosický.
git-svn-id: http://svn.redmine.org/redmine/trunk@15883 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/member_role.rb | 5 | ||||
-rw-r--r-- | app/models/project.rb | 2 |
2 files changed, 2 insertions, 5 deletions
diff --git a/app/models/member_role.rb b/app/models/member_role.rb index d65e7b606..99b9396d7 100644 --- a/app/models/member_role.rb +++ b/app/models/member_role.rb @@ -72,9 +72,6 @@ class MemberRole < ActiveRecord::Base end def remove_inherited_roles - MemberRole.where(:inherited_from => id).group_by(&:member). - each do |member, member_roles| - member_roles.each(&:destroy) - end + MemberRole.where(:inherited_from => id).destroy_all end end diff --git a/app/models/project.rb b/app/models/project.rb index c35a86780..e751c4b4c 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -844,7 +844,7 @@ class Project < ActiveRecord::Base end def remove_inherited_member_roles - member_roles = memberships.map(&:member_roles).flatten + member_roles = MemberRole.where(:member_id => membership_ids).to_a member_role_ids = member_roles.map(&:id) member_roles.each do |member_role| if member_role.inherited_from && !member_role_ids.include?(member_role.inherited_from) |