Есть ли способ заставить ассоциацию has_many с таблицей соединений не обязательной в Rails? - PullRequest
0 голосов
/ 02 мая 2020

Мне нужна идея, как сделать ассоциации моделей для выполнения sh задачи в Ruby на Rails. У меня есть 3 таблицы. Пользователь, спред и группа. Группа может иметь много пользователей, пользователь может принадлежать только к одной группе. Группа пользователей может иметь свои собственные спреды, но у определенного пользователя c могут быть свои собственные спреды (без участия в группе). Как я могу создать спреды для пользователя без создания группы в этом случае?

На данный момент у меня есть следующие отношения:

Пользователь:

has_many :spreads, through :group

Группа:

has_many :users
has many :spreads

Распространение:

belong_to :group

1 Ответ

1 голос
/ 02 мая 2020

Вы можете использовать Полиморф c Ассоциация . Таким образом, ваши ассоциации будут выглядеть примерно так:

Пользователь:

has_many :spreads, as: :parent

Группа:

has_many :users
has many :spreads, as: :parent

Распространение:

belong_to :parent, polymorphic: true
...