Вы когда-нибудь делали это?Два класса модели - одна таблица базы данных
Я пишу приложение Rails. У меня есть ситуация, когда у меня есть модель задачи (и таблица), у задачи есть атрибуты, люди, которым разрешено ее просматривать, и иерархия (это может быть проект или бизнес).
У меня также есть AssignmentController, который предоставляет некоторые представления и функциональные возможности для лица, которому назначено задание. AssignmentController использует Task.find для получения задачи и является тем же объектом, что и Задача, - это просто обновляется Assignee и только правопреемнику доступно только несколько столбцов. В этом случае я хотел скрыть некоторый пользовательский интерфейс, изменить макет, чтобы он соответствовал бизнесу, и иерархия не имела значения для правопреемника задачи.
То, что я собираюсь сделать, это создать модель задачи и модель присваивания, которые указывают на одну и ту же таблицу (таблица задач). Я не понимаю, почему я не должен этого делать. Это позволило бы мне уменьшить класс модели Assignment и изолировать методы, которые используются только Task. Насколько я могу судить, это также сделает большую часть кода чище кода.
Я не вижу много об этом шаблоне при поиске в Интернете. Любые мнения об этом?
Цените свои мысли ...
Я все еще исследую это. Я просто модель и попробовал ее в скрипте/консоли, и, похоже, он работает нормально. Вы можете даже получить доступ к «Задаче», если это необходимо, из Присвоения. has_one: task,: foreign_key =>: id В конечном итоге это позволило бы мне иметь «бизнес» метод (например) для каждой модели, который указывает на другой бизнес. Одна ожидаемая проблема - любые полиморфные элементы в Задаче (например, фотографии) не были бы в задании, но могли бы быть доступны через Задачу, если это необходимо. – Swards