我有两个相关的表,'发布'和& 'tracks'分别包含字段'name'和'isrc'。
当release.name等于某个值时,我试图从数据库中删除所有曲目,例如“Thriller”。
这里的关系是'track'属于'release'和'release'has_many'tracks'。
任何人都可以帮我了解如何在Rails控制台中实现这一目标吗?
答案 0 :(得分:1)
在您的发布模型中:
has_many :tracks, dependent: :destroy
当您销毁版本时,这将删除与数据库中的版本关联的所有曲目。
您可以通过在控制台中执行此类操作来测试此操作
release = Realse.where(name:"Thriller").first
release_id = release.id
release.destroy
tracks = Track.where(release_id:release_id)
变量曲目现在应为空。
答案 1 :(得分:0)
应该有效:
Track.delete_all("release_id in ?", Release.select("id").where(name: 'Thriller'))
由于