2014-10-22 79 views

回答

1

不,您需要設置dependent密鑰。

has_many :pages, dependent: :destroy 

正如OP指出delete_all有另一種選擇。區別在於delete_all不會觸發模型的before_destroy回調,它只會從數據庫中擦除它們。

這是有益的,因爲它不需要Rails將DB對象加載到Ruby中,這很慢,但它也會刪除它們,而不管您定義的回調是什麼。

+0

@@ Brian Wheeler,還有另一種選擇:delete_all。在destroy和delete_all之間,如果我們只想刪除關聯的子記錄,是否有區別?非常感謝。 – user938363 2014-10-22 03:45:21

+0

是的,請參閱我的編輯 – OneChillDude 2014-10-22 17:01:43

+0

您的意思是:delete_all是有益的,因爲它不需要Rails將DB對象加載到ruby中? – user938363 2014-10-22 18:57:10