Frage

Ich habe ein Modell in Schienen mit ONE_TO_MANY Beziehung. Wenn ich den Vater löschen, würde Ich mag alle Kinder löschen. Wie soll ich es tun? Ich möchte alle Aufträge und ihre Elemente löschen, wenn ich einen Benutzer löschen

Meine Modelle sind:

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
War es hilfreich?

Lösung

jdl Antwort ist richtig - müssen Sie :dependent => :destroy beiden Beziehungen addieren - d. H in Ihrer User Klasse, fügen Sie es has_many :orders und in Ihrer Order Klasse, fügen Sie es has_many :order_items

Sie können auch die MySQL-Verhalten WRT Fremdschlüssel ändern möchten, vielleicht Einstellung sie ON DELETE CASCADE.

Andere Tipps

Was Sie suchen ist die :dependent => :destroy Option auf has_many.

has_many docs

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top