gpt4 book ai didi

ruby-on-rails - 如何销毁has_many associations plus join表记录?

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:26 25 4
gpt4 key购买 nike

在我的 Rails 应用程序中,我有这些模型:

class Person < ActiveRecord::Base
has_many :jobs
has_many :projects, :through => :jobs
end

class Project < ActiveRecord::Base
has_many :jobs
has_many :people, :through => :jobs
end

class Job < ActiveRecord::Base
belongs_to :person
belongs_to :project
end

当我删除一个时,我想删除所有关联的jobsprojects。所以我做了类似的事情:

class Person < ActiveRecord::Base
has_many :jobs, :dependent => :destroy
has_many :projects, :through => :jobs, :dependent => :destroy
end

这对于摆脱 jobs 但保留 projects 非常有用(我假设因为没有 jobsperson 无法引用 project)。有没有一种惯用的方法可以做到这一点,还是我只需要在我的 jobs 上使用 before_destroy 回调来删除 projects

感谢您的帮助。

最佳答案

这只是一个猜测,但请尝试:

class Job < ActiveRecord::Base
belongs_to :person
belongs_to :project, :dependent => :destroy
end

我认为可能发生的情况是,当你销毁一个人时,Rails 可能会删除你的工作记录,然后在下一个“行”中它会尝试搜索项目,但由于没有工作,项目不会被销毁。

关于ruby-on-rails - 如何销毁has_many associations plus join表记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com