2013-05-30 3 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 я получаю:

неопределенный метод `свойства 'для 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

Такая же проблема здесь ... как вы это сделали? –