我的数据库中有一个名为providers
的表,其中包含一个名为provider_type
的类型列。 provider_type
可以是以下任一项:
我想创建一个继承自名为Sequel::Model
的{{1}}和一个名为Center
的类的类,其结果方法将通过{{1}来确定相应类的所有查询的范围}或Sponsor
。
我能够做到这一点并非100%必要,但如果有可能,那将是理想的。
答案 0 :(得分:2)
你想要single_table_inheritance插件:
class Provider < Sequel::Model
plugin :single_table_inheritance, :provider_type
end
class Center < Provider
end
class Sponsor < Provider
end
这将有效,但前提是provider_type列完全匹配“Center”或“Sponsor”。如果没有,您可能需要在插件调用中添加:model_map选项。此插件的文档位于http://sequel.jeremyevans.net/rdoc-plugins/classes/Sequel/Plugins/SingleTableInheritance.html