在我的 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
当我删除 aperson
时,我想删除所有关联的jobs
and projects
。所以我做类似的事情:
class Person < ActiveRecord::Base
has_many :jobs, :dependent => :destroy
has_many :projects, :through => :jobs, :dependent => :destroy
end
这非常适合摆脱,jobs
但留下了projects
(我假设因为没有jobs
,person
就无法引用project
)。有没有一种惯用的方法来做到这一点,还是我只需要before_destroy
在我的上使用回调jobs
来删除projects
?
谢谢你的帮助。