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!