Задать вопрос
Meridian312
@Meridian312

Как правильно расшарить схему миграции и атрибутов моделей в Rails?

Необходимо создать несколько моделей, все из которых имееют общие атрибуты. Как сделать чтобы все определения были DRY.

Например

Модель A, имеет attr_1 string, attr_2 int, attr_3 int

Модель Б и Модель В включают в себя определения для схемы модели A и её атрибуты

При том, что никакая модель не следует паттерну STI, так как под-модели могут иметь свои уникальные атрибуты.
  • Вопрос задан
  • 2287 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vsuhachev
Есть 2 варианта: наследование и concerns (ака mixin'ы). Основные отличия в смысловой нагрузке, которую вы вкладываете в отношения этих классов.

Если Б это подкласс А, то логичнее использовать наследование. Пример - 'Автомобиль' и 'ВАЗ 2109'

Если А и Б разнородные сущности, имеющие некий общий функционал то логичнее использовать concerns. Пример - 'Автомобиль' и 'Лифт' могут иметь общий функционал связанный с погрузкой пассажиров.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы