Sequel :: Model(Ruby ORM)中的单表继承

时间:2012-05-24 20:54:13

标签: ruby orm model sequel default-scope

我的数据库中有一个名为providers的表,其中包含一个名为provider_type的类型列。 provider_type可以是以下任一项:

  • 中心
  • 赞助

我想创建一个继承自名为Sequel::Model的{​​{1}}和一个名为Center的类的类,其结果方法将通过{{1}来确定相应类的所有查询的范围}或Sponsor

我能够做到这一点并非100%必要,但如果有可能,那将是理想的。

1 个答案:

答案 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