在Rails 3.2.6上,我有一个从ActiveRecord::Base继承的类:

class Section < ActiveRecord::Base
  ...
end

当我从此类继承时,Rails会假定我需要STI:
class AnotherSection < Section
   ..Rails assumes I have a type field, etc...
end

我希望能够从Section类继承并将该子类用作普通的Ruby子类,而无需使用Rails STI魔术。

ActiveRecord::Base模型子类化时,有没有办法防止STI?

最佳答案

您可以通过为模型禁用inheritance_column来实现此目的,如下所示:

class AnotherSection < Section
  # disable STI
  self.inheritance_column = :_type_disabled

end

关于ruby-on-rails - 从ActiveRecord模型继承时防止STI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11676288/

10-12 18:25