根據documentation Rails has_many
關聯有clear
方法。看起來它執行後立即執行sql delete
查詢。是否有一種規範的方法來刪除所有的子對象,並只在save
方法的時刻更新關聯?例如:Rails has_many清除方法
@cart.container_items.delete_all_example # looks like `clear` execute sql at this line
if @cart.save
# do smth
else
#do smth
end
這是必要的,因爲父對象的許多變化,他們必須提交全部或全部都沒有。
它在'destroy_all'行執行sql。我想用save方法來做。 – tiktak
這不是Rails破壞對象的方式。摧毀一直是該方法被調用的關鍵點,而不是稍後的「保存」。沒有簡單的方法(或真正的理由)去做你想做的事情。 – meagar