Index: app/models/member_role.rb =================================================================== --- app/models/member_role.rb (revision 15418) +++ app/models/member_role.rb (working copy) @@ -72,9 +72,8 @@ end def remove_inherited_roles - MemberRole.where(:inherited_from => id).group_by(&:member). - each do |member, member_roles| - member_roles.each(&:destroy) + MemberRole.where(:inherited_from => id).order(:member_id).each do |member_role| + member_role.destroy end end end Index: app/models/project.rb =================================================================== --- app/models/project.rb (revision 15418) +++ app/models/project.rb (working copy) @@ -804,7 +804,7 @@ 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) Index: db/migrate/20160519091249_add_index_on_member_roles_inherited_from.rb =================================================================== --- db/migrate/20160519091249_add_index_on_member_roles_inherited_from.rb (nonexistent) +++ db/migrate/20160519091249_add_index_on_member_roles_inherited_from.rb (working copy) @@ -0,0 +1,5 @@ +class AddIndexOnMemberRolesInheritedFrom < ActiveRecord::Migration + def change + add_index :member_roles, :inherited_from + end +end