2012-05-24 2 views
2

У меня есть таблица в моей базе данных под названием providers с колонкой типа provider_type. provider_type может быть одно из следующих действий:Одиночное наследование наследования в Sequel :: Model (Ruby ORM)

  • центра
  • спонсор

Я хочу создать класс, который наследуется от Sequel::Model называется Center и один называется Sponsor, результирующие методы, для которых будет охват всех запросов для соответствующего класса на provider_type = 'center' или provider_type = 'sponsor'.

Это не очень важно, чтобы я мог это сделать, но если это возможно, это было бы идеально.

ответ

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 точно соответствует «Центр» или «спонсор». Если нет, возможно, вам потребуется добавить параметр: model_map для вызова плагина. Документация по этому плагину находится по адресу http://sequel.jeremyevans.net/rdoc-plugins/classes/Sequel/Plugins/SingleTableInheritance.html

+0

это даже чище, чем я надеялся. Благодаря! –

Смежные вопросы