У меня есть модели Worker, Manager и Title в Rails 2.x.Существует также таблица JOIN, в которой есть только worker_id, manager_id и title_id (для этого нет явной модели).Из-за этой таблицы JOIN (и не имеющей для нее модели), я предполагаю, что у меня должно быть следующее:
В модели Worker у меня есть:
Worker
has_and_belongs_to_many :managers
has_and_belongs_to_many :titles
Но, вНа самом деле отношения таковы, что у Работника может быть только 1 Менеджер, но много Титулов.Кроме того, многие работники имеют одного и того же менеджера.
Некоторые примеры данных для иллюстрации взаимосвязи:
Worker | Title | Manager
Tom | A | M1
Tom | B | M1
Bob | A | M2
Pam | C | M1
Является ли приведенная выше модель работника "правильной"?При создании нового работника (и всех их отношений) я делаю:
worker = Worker.new("A")
title = "B"
manager = "C"
worker.titles << title
worker.managers << manager
worker.save
Когда я делаю это, я получаю в своей базе данных следующее:
Worker | Title | Manager
A | B | null
A | null | C
Я хотел быполучить:
Worker | Title | Manager
A | B | C