J'ai donc quelques modèles configurés qui peuvent chacun avoir un commentaire. Je l'ai mis en place en utilisant has_many_polymorphs, mais je commence à rencontrer des problèmes qui ne fonctionnent pas comme je le pense.Rails has_many_polymorphs à l'envers?
Par exemple:
class Project < ActiveRecord::Base
end
class Message < ActiveRecord::Base
has_many_polymorphs :consumers,
:from => [:projects, :messages],
:through => :message_consumers,
:as => :comment # Self-referential associations have to rename the non-polymorphic key
end
class MessageConsumer < ActiveRecord::Base
# Self-referential associations have to rename the non-polymorphic key
belongs_to :comment, :foreign_key => 'comment_id', :class_name => 'Message'
belongs_to :consumer, :polymorphic => true
end
Dans ce cas, le message pas supprimés lorsque le projet est supprimé, parce que le message est vraiment le parent dans la relation. Je l'ai simplifié un peu pour l'exemple, mais il y a d'autres modèles qui ont un message, et il y a aussi des pièces jointes qui fonctionnent de façon similaire.
Quelle serait la bonne façon de configurer ceci afin que les enfants soient supprimés lorsque le parent est supprimé? J'espère ne pas avoir un million de tables, mais je n'arrive pas à trouver un autre moyen de le faire.
Oui, lorsqu'un projet est supprimé, le message doit également être supprimé. Toutes les entrées de message_consumer orphelines doivent également être nettoyées. – Karl