我正在尝试与旧式表集成,该旧式表具有名为“type”的列。
Rails将“聪明地”假设只要表中有“类型”列,它就会尝试使用“单表继承”。
反正有避免这种情况吗?
(我无法重命名该列)。
最佳答案
好吧,大多数类型它确实很聪明-约定优于配置有一些非常实际的好处。 ;-)
在您无法使用约定的情况下,有一种解决方法(可能-至少到目前为止,我一直都找到了...)。对于遗留模式,有两种可能性马上浮现在脑海。
:type
覆盖将set_inheritance_column
用作STI指示符,因此class LegacyValue < ActiveRecord::Base
set_inheritance_column 'does_not_have_one'
end
关于ruby-on-rails - 在Rails/ActiveRecord和旧版架构中避免 “Single Table Inheritance”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3201257/