我有一个名为“DynObject”的 ActiveRecord 类,可用于继承..
在初始化时,我动态创建了一些继承自它的类:
classes_config = { foo: 'foo', bar: 'bar' }
classes_config.each do |name,options|
klass = Class.new( DynObject ) do
end
self.klasses[name] = const_set( "#{name.camelize}DynObject", klass )
end
这一切都很好,这些类创建得很好。但是当 ActiveRecord 尝试加载创建的记录时,STI 机制失败了。(ActiveRecord::SubclassNotFound (The single-table inheritance mechanism failed to locate the subclass: 'FooObject'....))
我认为这很奇怪,因为当我检查类作为它们在type
列中的命名方式时,它们存在..
当我检查ancestors
这些类时,它们也继承得很好..
我想要完成的事情有可能吗?
还有什么需要做的吗?