继承文档说明了如何轻松实现STI,鉴于您可以选择type
列的值。
但是,我有一个遗留数据库,并且这些价值已经存在。假设这些是PRIORITY
,ECONOMY
和FLEXI
,我如何指定如何将这些值映射到子类?
class PriorityPassenger < Passenger
# map to PRIORITY
end
这应该有效(未经测试(:
ActiveRecord::Inheritance::ClassMethods.prepend(Module.new do
def find_sti_class(type_name)
case type_name
when 'PRIORITY' then PriorityPassenger
...
else super(type_name)
end
end
end)