1

我有两个关联的表,'releases' 和 'tracks' 分别包含字段 'name' 和 'isrc'。

当 release.name 等于某个值时,我试图从数据库中删除所有曲目,例如“Thriller”。

这里的关系是 'track' 属于一个 'release' 和一个 'release' has_many 'tracks'。

谁能帮助我如何在 Rails 控制台中实现这一点?

4

2 回答 2

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)

变量轨道现在应该是空的。

于 2013-07-31T11:40:11.677 回答
0

它应该工作:

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

谢谢

于 2013-07-31T11:53:16.513 回答