簡體   English   中英

Rails刪除聯接表中的記錄

[英]Rails deleting record in join table

我有兩個關聯的表,“ releases”和“ tracks”,分別包含字段“ name”和“ isrc”。

我試圖在release.name等於某個值(例如“ Thriller”)時從數據庫中刪除所有軌道。

這里的關系是“ track”屬於“ release”和“ release” has_many“ tracks”。

誰能在Rails控制台中幫助我實現這一目標?

在您的發布模型中:

has_many :tracks, dependent: :destroy

銷毀發行版時,這將從數據庫中刪除與發行版關聯的所有軌道。

您可以通過在控制台中執行以下操作來進行測試

release = Realse.where(name:"Thriller").first
release_id = release.id
release.destroy
tracks = Track.where(release_id:release_id)

現在,可變磁道應該為空。

它應該工作:

Track.delete_all("release_id in ?", Release.select("id").where(name: 'Thriller'))

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM