Polymorphi c ассоциации с моделью has_many разных типов - PullRequest
0 голосов
/ 28 января 2020

Я изучаю Rails и в настоящее время работаю над своим первым приложением.

У меня есть глава, у которой has_many Деятельности. Существуют разные виды деятельности, и все они имеют очень разные атрибуты. У меня есть базовая активность и разные подклассы для представления каждого типа активности.

У меня проблемы с моделированием этого сценария без использования STI (так как я не хочу одну таблицу со многими пустыми столбцами). Я читал об ассоциациях polymorphi c, но я не уверен, как использовать эту функцию для моделирования этой ситуации (я даже не уверен, подходит ли этот сценарий для ассоциаций polymorphi c).

Кто-нибудь моделировал что-то подобное с помощью этой функции?

1 Ответ

0 голосов
/ 29 января 2020

Если у вас есть одна таблица для каждого типа деятельности, вы можете сделать следующее:

  • Создать один класс для каждого типа деятельности. Все они должны наследовать от ActiveRecord::Base
  • Реализовать общее поведение активности в модуле и включать этот модуль в каждый класс активности.
  • Использовать отношение belongs_to :chapter в каждом классе активности
  • Используйте одно has_many отношение для каждого класса деятельности в классе главы

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

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