2015-11-30 165 views
0

我有類項目,刪除兒童導軌4

class Project < ActiveRecord::Base 
    has_many :Users 
    acts_as_tree 
end 

我想刪除所有的孩子,如果我刪除父,在這種情況下的意思,如果我刪除的項目(父)必須全部刪除用戶(兒童)和子項目(兒童)。

我可以通過用戶dependent: :delete_all補充,但我不知道我該怎麼做acts_as_tree

感謝

+0

您應該定義樹關係作爲關聯! 'has_many:children,class_name:'Project',dependent::destroy,foreign_key:'parent_id''(檢查foreign_key的名稱) –

回答

0

嘗試使用相關的:破壞,如: -

has_many :users, dependent: :destroy 
+0

我知道我是如何爲用戶做的,我不知道我該怎麼做acts_as_tree! 閱讀plz問題 – Arthur

0

act_as_tree默認行爲會自動破壞children當你破壞parent,你可以看到在源代碼(https://github.com/amerine/acts_as_tree/blob/master/lib/acts_as_tree.rb

但是,你可以改變這種行爲的具體方式,你會用has_many方法相同,例如:

act_as_tree dependent: :delete_all 
你的情況

所以,你只需要級聯破壞用戶:

class Project < ActiveRecord::Base 
    has_many :users, dependent: :destroy 
    acts_as_tree # dependent: :destroy 
end 

因此,@ user3506853的回答實際上是正確的,考慮到您提出問題的方式。

乾杯!