У меня есть модель "Задача", которая будет иметь много "TaskTargets".
Однако, когда дело доходит до TaskTargets, я пишу базовый класс TaskTarget, который является абстрактным (насколько это возможно в Rails). TaskTarget будет разделяться на различные концептуализации всего, что может быть целью задачи. Так сказать, программная подсистема, сайт клиента, ванная и т. Д. ...
Дизайн классов здесь довольно прост, но я сталкиваюсь с тем, как я буду связывать все это вместе и как у меня будут рельсы для управления этими отношениями.
Сначала я подумал, что у меня будет таблица TaskTarget, которая будет содержать основные общие поля (имя, описание ...). Затем он также будет иметь полиморфную связь с таблицей, специфичной для типа данных, которые реализует реализующий класс.
Это означает, что данные для одного экземпляра класса, реализующего TaskTarget, будут найдены в двух таблицах.
Второй подход заключается в создании полиморфных отношений HABTM между Task и подклассами TaskTarget, которые, как я думал, я мог бы использовать повторно для имени таблицы TaskTarget для таблицы объединения.
Вариант № 2 Я подозреваю, что это самый надежный, но, возможно, я что-то упустил. Спасибо за любую помощь и, конечно же, я просто прошу убедиться, что я сделаю это правильно, один раз!