2011-10-31 40 views
1

我有一個簡單的博客樣式系統,用戶可以有很多條目。rails 3 - 刪除所有相關記錄給用戶 - 防止orpahn數據

我試着做刪除所有用戶一個條目下面 -

user = User.find_by_id(1) 
user.entries.delete_all 

這並沒有成功地刪除相關條目,它剛剛設置USER_ID在進入零 -

<Entry id: 20, content: "test", user_id: nil, created_at: "2011-10-31 10:26:18", updated_at: "2011-10-31 10:26:18", attachment_id: nil, likes_count: nil, comments_count: nil> 

的幾個問題,如果你不介意的話 -

我怎樣才能確保沒有所有者所有條目被刪除,他們的相關信息也被刪除?基於上面的例子 - 我想刪除該條目,它的相關評論

我應該怎麼會有最初避免了這個問題?我認爲我的user.entries.delete_all命令是錯誤的。

+0

我想你的問題的備份部分移到一個新的線程/問題 –

+0

完成了,謝謝v – Finnnn

回答

7

你知道在Rails中destroydelete之間的區別嗎?如果您使用destroy Rails將實例化要首先刪除的記錄,並調用與destroy(之前,之後,周圍和級聯到關聯)相關聯的所有回調。因此,你可以創建一個after_destroy回調其銷燬所有用戶相關的數據,條目等,或聲明與:dependent => :destroy你的has_many的關係,系統會自動添加一個回調銷燬所有相關的項目