2013-02-28 4 views
0

Я пытаюсь перенести старую базу данных с помощью DataMapper, и у меня проблема со многими отношениями.DataMapper - Установить репозиторий для отношений многих и многих с помощью анонимного ресурса

У меня есть модель Post и Tag, которые проходят анонимный ресурс. Я могу установить имя репозитория в моделях post и tag, но не автогенерированную модель PostTag (насколько я знаю). Есть ли способ заставить всех из них использовать одно и то же имя репозитория (:legacy)?

Приветствия,
Том

ответ

1

Вы можете просто создать нормальную модель DM для «среднего» ресурс, чтобы иметь возможность определить имя хранилища, такие как

model PostTag 
    include DataMapper::Resource 
    def self.default_repository_name; :legacy end 
    belongs_to :post, :key => true 
    belongs_to :tag, :key => true 
end 

и в обоих из них родители, определите связь с :through. Например,

model Post 
    # other definitions ... 
    has n, :post_tags 
    has n, :tags, :through => :post_tags 
end