Как перенести один класс в подкласс другого? - PullRequest
2 голосов
/ 15 февраля 2012

Я использую Ruby 1.8.7 и Rails 2.3.8

У меня есть две модели ActiveRecord, A и B, у каждой есть свои таблицы и контроллеры.

B имеет много тех же атрибутов и методов, что и A
B, используемый для шаблонирования объектов A.
A имеет гораздо больше атрибутов, поскольку это реальный объект, которыйсделано из B.

Так может B должен быть суперклассом для A?(Поскольку A имеет все атрибуты, которые есть у B, но не наоборот)

У меня уже есть контроллер для B в качестве подкласса для контроллера для A.

Как сделать один подклассом другого, и при этом сохранить отдельные таблицы?

Сохранение двух контроллеров не так важно, поскольку контроллер для B похож на .. 10линии.

А как бы я вызвал метод, который может быть частью объекта?есть .try(), но я думаю, что это работает только для атрибутов?

Если мне нужно как-то быть более ясным, дайте мне знать.

1 Ответ

1 голос
/ 15 февраля 2012

Рассматривали ли вы использование mixin ? Они предоставляют много тех же преимуществ, что и наследование, но при этом один класс фактически не наследуется от другого. Вместо этого вы можете предоставить методы и переменные класса и экземпляра, которые доступны каждому классу, который включает в себя миксин.

Я использую это для многих моделей, которые должны иметь общий интерфейс, или когда я планирую использовать несколько моделей в какой-то другой части системы, которая не является чистой MVC.

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