我有一個名爲可用於繼承「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機制failes .. (ActiveRecord::SubclassNotFound (The single-table inheritance mechanism failed to locate the subclass: 'FooObject'....))
我認爲這是奇怪的,因爲當我檢查類作爲他們是如何在type
列命名,它們的存在..
當我檢查這些類的ancestors
他們也繼承就好了..
是否有可能就是我試圖完成?
還有什麼需要做的嗎?