2012-01-14 1 views
3

Я недавно начал использовать DataMapper в нескольких проектах &. Я думаю, что это просто фантастика. Но у меня есть вопрос об использовании конкретного аспекта этого.DataMapper - Enum, как опция, флаг для Disccriminator?

Я знаю, что если у меня есть модель с имуществом Enum (property :whatev, Enum[ :foo, :bar ]), я могу позвонить Model.whatev.options[:flag] &, чтобы получить все возможные значения для конкретного Enum. Мне интересно, знает ли кто-нибудь (или может указать мне в правильном направлении), если что-то похожее на тип собственности Discriminator?

т.е. есть способ назвать это конкретное свойство & имейте в виду различные варианты

ответ

0

Немного поздно, но здесь идет. С учетом определения модели, такие как:

class Foo 
    include DataMapper::Resource 
    property :id, Serial 
    property :type, Discriminator 
end 

class Bar < Foo; end 
class Baz < Foo; end 

Вы можете увидеть подклассы с:

Foo.descendants.entries 

, который возвращает массив: [Bar, Baz].