我有两个共享一些相同属性的模型,所以我想设置一个表继承结构。在做了一些研究之后,我发现我可以通过执行以下操作来使用模块来实现相同的目的:
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
然而,当我做rake db:automigrate我得到:
CommonFields的未定义方法`属性':模块 /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 :(得分:0)
我想我知道问题所在。我没有意识到的是,我在B类中引用了一个引用CommonFields的关联。这就是造成这个问题的原因!需要重新考虑我将如何做到这一点。