def destroyBook
@book = Book.find(params[:id])
@book.destroy
Book.find_by(id:params[:id]).book_authors.destroy_all
Book.find_by(id:params[:id]).book_categories.destroy_all
@book = Book.all
redirect_to "/books/views"
end

它將正常作業或 Rails 控制臺
uj5u.com熱心網友回復:
洗掉后找不到圖書記錄。如果你想銷毀 has_many 關系記錄,你必須先銷毀它們。您在控制臺上沒有遇到此錯誤的原因是,當您在變數中呼叫并分配書籍記錄時,即使您從資料庫中銷毀該物件,您也可以訪問該物件。因為書的物件已經寫在了記憶體中。
還有一種適當的方法可以使用dependent: :destroy選項在模型中實作您想要的。例如:
has_many :book_authors, dependent: :destroy
如果你像這樣定義 has_many 關系,那么當你銷毀這本書時,屬于 book 的 book_authors 記錄將始終被銷毀。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/497498.html
標籤:轨道上的红宝石 ruby-on-rails-3 ruby-on-rails-5
