Project

General

Profile

Defect #27165

Updated by Toshi MARUYAMA over 6 years ago

The method delete_all_members in the model Project is the next: 

 <pre><code class="ruby"> <pre> 
 def delete_all_members 
     me, mr = Member.table_name, MemberRole.table_name 
     self.class.connection.delete("DELETE FROM #{mr} WHERE #{mr}.member_id IN (SELECT #{me}.id FROM #{me} WHERE #{me}.project_id = #{id})") 
     Member.delete_all(['project_id = ?', id]) 
 
   end 
 </code></pre> </pre> 

 I was doing some test capturing the destroy event on a member patch and I realized that the event on this patch was only ran in some members.  

 The question is, why we have to do a class.connection to delete the member_roles and then run a member.delete_all if we have connected the models correctly. 

 I proved with this: 

 <pre><code class="ruby"> <pre> 
 def delete_all_members 
     me, mr = Member.table_name, MemberRole.table_name 
     Member.destroy_all(['project_id = ?', id]) 
 
   end 
 </code></pre> </pre> 

 and the results were ok. Is there something that I don't know of it's a defect? 

 Thanks! 

Back