2011-06-24 28 views
0

我有以下的AR模型定義:的ActiveRecord:從屬混亂

class Venue < ActiveRecord::Base 
    has_many :events 
end 

class Act < ActiveRecord::Base 
    has_many :events 
end 

class Event < ActiveRecord::Base 
    belongs_to :venue 
    belongs_to :act 
end 

我要的是如果我刪除一個地點或法案,任何相關的活動也將被刪除。但是如果我刪除一個事件,相關的地點和行爲不會被刪除。我嘗試了各種:dependent變體,但似乎沒有任何工作。

這看起來很簡單。我錯過了什麼?

回答

1

我想通了這個問題。我必須在父對象上調用destroy而不是delete。文件沒有真正說清楚。

1

這適用於我。刪除場地/行爲將刪除其擁有的所有事件,而刪除事件不會影響其所屬的場地/行爲。

class Venue < ActiveRecord::Base 
    has_many :events, :dependent => :destroy 
end 

class Act < ActiveRecord::Base 
    has_many :events, :dependent => :destroy 
end 

class Event < ActiveRecord::Base 
    belongs_to :venue 
    belongs_to :act 
end