3

我最近开始在一些项目中使用 DataMapper,总的来说,我认为它太棒了。但我有一个关于使用它的特定方面的问题。

我知道,如果我有一个具有 Enum 属性 ( property :whatev, Enum[ :foo, :bar ]) 的模型,我可以调用Model.whatev.options[:flag]并取回特定 Enum 的所有不同可能值。我想知道是否有人知道(或者可以指出我正确的方向)是否有类似的Discriminator属性类型?

IE。有没有办法调用该特定属性并让它返回各种选项

4

1 回答 1

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].

于 2013-04-10T16:11:22.257 回答