【发布时间】:2012-07-26 19:02:54
【问题描述】:
在 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?
【问题讨论】:
-
如果您没有不应该打扰您的
type列...如果您确实有type,那么您可以按照@Veraticus 所说的方式禁用它。 -
其实你还是有STI的:两个类的实例会存储在同一张表中,STI(单表继承)的定义是什么。您只是不想有一个鉴别器列(“类型”)。但是,您如何知道section 中的每条记录是普通section 还是AnotherSection?
标签: ruby-on-rails ruby sti