【问题标题】:Single Table Inheritance in Sequel::Model (Ruby ORM)Sequel::Model 中的单表继承 (Ruby ORM)
【发布时间】:2012-05-24 20:54:13
【问题描述】:

我的数据库中有一个名为providers 的表,其类型列名为provider_typeprovider_type 可以是以下任意一种:

  • 居中
  • 赞助商

我想创建一个继承自Sequel::Model 的类,称为Center 和一个称为Sponsor,其生成的方法将通过provider_type = 'center'provider_type = 'sponsor' 限定相应类的所有查询。

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

【问题讨论】:

    标签: ruby orm model sequel default-scope


    【解决方案1】:

    你想要 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

    【讨论】:

    • 这比我希望的还要干净。谢谢!
    猜你喜欢
    • 2011-11-05
    • 1970-01-01
    • 2022-01-19
    • 2012-10-13
    • 1970-01-01
    • 2023-01-26
    • 2013-06-07
    • 2012-09-22
    • 1970-01-01
    相关资源
    最近更新 更多