J'ai des états qui ont beaucoup de villes (belongs_to: state) qui ont beaucoup d'entreprises (belongs_to: city). État aussi ... has_many: entreprises,: through =>: villesEnlever le: has_many quand le: belongs_to est mis à jour/détruit si le: has_many est maintenant vide
Sur mon site, tout est géré depuis la perspective Business. Quand une nouvelle entreprise est créée/mise à jour, l'état/ville est créé s'il n'existe pas déjà. Cela se passe dans un appel: before_save.
Je rencontre des problèmes lors de la suppression des États/Cités lorsqu'une entreprise est mise à jour. Si l'état/la ville dans laquelle se trouve une entreprise est modifié (encore une fois, cela se produit à partir d'un formulaire d'activité d'édition) et que l'ancien état/ville n'a plus d'entreprise, je veux le détruire. J'ai essayé de le faire dans les appels after_save mais ils sont enveloppés dans une transaction et même si j'assigne des variables aux noms de l'ancien état/ville, ils semblent être changés en nouvel état/ville au cours de la transaction. C'est fou! J'ai utilisé des appels «puts» pour imprimer les vars à certains endroits dans mon Business model et j'ai regardé les vars changer pendant une sauvegarde. C'était frustrant. Donc, en ce moment je gère cela à partir du contrôleur, mais il se sent hackish.
Voici une partie de mon code.
Aussi, j'aimerais toute entrée sur la meilleure façon de structurer cette chose.
Merci
C'est très bien pour détruire des entreprises, mais ne traite pas les mises à jour qui est le vrai problème. – kjs3
Désolé, j'ai manqué le peu de mises à jour. J'ai modifié ma réponse pour l'attraper. – EmFi