【发布时间】:2014-03-31 08:29:46
【问题描述】:
在 Rails 3.2.x 中,以下工作正常:
class Engine < ActiveRecord::Base
has_one :car, dependent: :destroy
end
class Car < ActiveRecord::Base
belongs_to :engine, dependent: :destroy
belongs_to :owner
end
class Owner < ActiveRecord::Base
has_one :car, dependent: :destroy
end
如果我打电话给owner.destroy,它会删除那个车主、它的车和那个车的引擎。我升级到 Rails 4,不幸的是,引擎和汽车之间出现了无限循环。我假设是因为当汽车试图被删除时,Rails 首先删除它的引擎。然后在尝试删除引擎时,Rails 首先尝试删除其汽车..
如何在 Rails 4 中处理这个问题?我希望能够删除所有者,Rails/ActiveRecord 会自动删除关联的汽车和引擎。或者我可以删除一个引擎,Rails 会自动删除关联的汽车,反之亦然。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-4 rails-activerecord