2013-05-30 221 views
1

我有两个模型共享一些相同的属性,所以我想设置一个表继承结构。之后做一些研究,我发现我可以用模块通过执行来实现相同的,而不是执行以下操作:在模型之间共享属性 - Datamapper

module CommonFields 
    def self.included base 
    base.class_eval do 
     include DataMapper::Resource 

     property :type, base::Discriminator 
     property :enable_feature1, base::Boolean, :default => false 
     property :enable_feature2, base::Boolean, :default => false 
    end 
    end 
end 

class A 
    include CommonFields 

    property: title, String 
end 

class B 
    include CommonFields 
end 

然而,当我这样做耙分贝:automigrate我得到:

未定义的方法`性质'for CommonFields:Module /usr/local/rvm/gems/ruby-1.9.2-p290/gems/dm-core-1.2.0/lib/dm-core/associations/relationship.rb:252:in`parent_key '

任何想法?

感谢,

保罗

回答

0

我想我知道是什么问题。我没有意识到的是,我在B类中有一个关联CommonFields的关联。这是造成这个问题的原因!需要重新思考我将如何去做到这一点。

+0

同样的问题在这里......你是怎么做到的? –