diff --git a/app/models/member_role.rb b/app/models/member_role.rb index d65e7b6..99b9396 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 c35a867..e751c4b 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) diff --git a/db/migrate/20161002133421_add_index_on_member_roles_inherited_from.rb b/db/migrate/20161002133421_add_index_on_member_roles_inherited_from.rb new file mode 100644 index 0000000..2a06a9e --- /dev/null +++ b/db/migrate/20161002133421_add_index_on_member_roles_inherited_from.rb @@ -0,0 +1,5 @@ +class AddIndexOnMemberRolesInheritedFrom < ActiveRecord::Migration + def change + add_index :member_roles, :inherited_from + end +end