我使用active_record-acts_as gem来实现多表继承。我的情景:
class Vehicle < ActiveRecord::Base
actable
end
class Plane < ActiveRecord::Base
acts_as :Vehicle
end
class Train < ActiveRecord::Base
acts_as :Vehicle
end
每当我创建Plane或Train的实例时,都会创建相应的Vehicle,但是,每当我删除Plane时,相应的Vehicle行都不会被删除。
是否有可能在删除子项时这样做,父行也会被删除?
答案 0 :(得分:1)
acts_as
支持所有has_one
个选项,默认值为:
as: :actable, dependent: :destroy, validate: false, autosave: true
所以:
class Vehicle < ActiveRecord::Base
actable
end
class Plane < ActiveRecord::Base
acts_as :Vehicle, dependent: :destroy
end
class Train < ActiveRecord::Base
acts_as :Vehicle, dependent: :destroy
end
我建议在使用之前/之后阅读gem的文档,特别是在发生问题时使用它。
答案 1 :(得分:0)
从一开始就代表我愚蠢的错误。
记录没有被删除的原因是因为我在调用Plane.delete而不是Plane.destroy。
问候。