Question

J'ai un modèle en rails avec une relation one_to_many. Lorsque je supprime le père, je souhaite supprimer tous les enfants. Comment devrais-je le faire? Je veux supprimer toutes les commandes et ses articles lorsque je supprime un utilisateur

Mes modèles sont:

class User < ActiveRecord::Base
  has_many :orders, :foreign_key => "id_user"
end

class Order < ActiveRecord::Base
  has_many :order_items, :foreign_key => "id_pedido"
  belongs_to :user, :foreign_key => "id_usuer"
end

class OrderItem < ActiveRecord::Base
  belongs_to :order, :foreign_key => "id_pedido"
end
Était-ce utile?

La solution

La réponse de

jdl est correcte - vous devez ajouter : depend = = > : détruisez des deux relations - dans votre classe Utilisateur , ajoutez-le à has_many: orders et à votre classe Order , ajoutez-le à has_many: éléments_de_commande .

Vous pouvez également modifier le comportement de MySQL vis-à-vis des clés étrangères, en les définissant éventuellement sur ON DELETE CASCADE .

Autres conseils

Ce que vous recherchez, c'est le : depend = = gt; : option de destruction sur has_many .

has_many documents

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top