Skip to content
Snippets Groups Projects
Commit d40c9fba authored by Arnaud Levy's avatar Arnaud Levy
Browse files

doc

parent ddaba742
No related branches found
No related tags found
No related merge requests found
......@@ -48,6 +48,16 @@ module AsIndirectObject
end
def destroy
# On est obligés d'overwrite la méthode destroy pour éviter un problème d'œuf et de poule.
# On a besoin que les websites puissent recalculer leurs recursive_dependencies
# et on a besoin que ces recursive_dependencies n'incluent pas l'objet courant, puisqu'il est "en cours de destruction" (ni ses propres recursive_dependencies).
# Mais si on détruit juste l'objet et qu'on fait un `after_destroy :clean_website_connections`
# on ne peut plus accéder aux websites (puisque l'objet est déjà détruit et ses connexions en cascades).
# Donc :
# 1. on stocke les websites
# 2. PUIS on détruit les connexions
# 3. PUIS on détruit l'objet (la méthode destroy normale)
# 4. PUIS on demande aux websites stockés de nettoyer leurs connexions
self.transaction do
website_ids = websites.pluck(:id)
connections.destroy_all
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment