Совместное использование атрибутов между моделями — 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

Однако, когда я выполняю rake db: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: в `parent_key'

Есть идеи?

Спасибо,

Павел


person pwc    schedule 30.05.2013    source источник


Ответы (1)


Кажется, я знаю, в чем проблема. Чего я не осознавал, так это того, что у меня была ассоциация в классе B, которая ссылалась на CommonFields. Вот что вызывает эту проблему! Нужно переосмыслить, как я собираюсь это сделать.

person pwc    schedule 31.05.2013
comment
Та же проблема... как ты это сделал? - person Waiting for Dev...; 16.07.2013