Должен ли я создать два разных набора моделей категории? Рубин на рельсах - PullRequest
4 голосов
/ 07 сентября 2010

У меня есть две модели приложения Rails, над которым я работаю, Article и Profile.Я хочу, чтобы у них были отдельные наборы категорий.Должен ли я создать две разные модели категории?article_category и profile_category?Если я сделаю это, будет много лишнего кода.

Ответы [ 2 ]

2 голосов
/ 07 сентября 2010

Если модели будут идентичны, то вам следует использовать полиморфные отношения. Смотрите мой ответ здесь: Rails - Как настроить модель, которая может принадлежать любой из 3 различных моделей

Если различным моделям категорий потребуется дополнительная логика, я бы использовал для этого наследование одной таблицы. У вас будет родительский класс Category, а ArticleCategory и ProfileCategory наследуются от этого. По сути, все, что вам нужно сделать, это добавить поле типа к категориям и два дополнительных класса. Это исключит избыточный код и позволит вам разделить любой код конкретной модели на соответствующий класс. Дайте мне знать, если вам нужно дополнительное руководство по этому вопросу.

2 голосов
/ 07 сентября 2010

Вопрос в том, будут ли обе категории функционировать одинаково?

Если они это сделают, то я бы использовал одну модель категорий, даже если разные имена были бы отнесены к разным.

Хитрость в том, чтобы DRY или "Не повторять себя".Так что, если что-то будет написано дважды, вы можете полностью преобразовать это в меньший код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...