2010-02-04 14 views
14

modeli:Ebeveynler raylarda silindiğinde alt nesneleri nasıl silebilirim?

has_many :b, :dependent => :delete_all 

modeli b:

belongs_to :a 
belongs_to :c 

modeli c:

has_many :b 

Bir a silmek, ben de o kadar silinen çocuk b's istiyorum onlar referans gösterebilecek herhangi bir c's'dan kaldırılır. Ancak, yukarıdaki çalışma değil. Herhangi bir yardım için minnettar olurum. böylece gibi

+1

Kopyala: http://stackoverflow.com/questions/331394/can-i-set-up-cascade-deleting-in-rails – hobodave

cevap

32

:

class Widgets < ActiveRecord::Base 
    has_many :whatevers, :dependent => :destroy 
end 

Güncelleme

Son yorum size nesneleri silmek için sil() yöntemini kullanırken gösterir. Bu, geri aramaları kullanmayacaktır. Lütfen özellikler için the manual'u okuyun.

+0

Bunun neden çalışmadığını anlayamıyorum. 'B' harfini işaret eden bir 'a' ve 'b' harfine de başvurduğumda, 'b', 'a' silindikten sonra, ' yukarıdaki. – James

+0

James, sahip olmanız gerekir: bağımlı =>: zincirdeki tüm nesneleri yok et. –

+0

hmmm ... üstte imha dediğimde çalışır, ancak silme dediğimde çalışmaz. Bu beklenen mi? – James