Rails complex model association, общий документ между пользователями и командами пользователей
У меня есть относительно сложная модель ассоциации в уме, и я задавался вопросом, как я мог бы ее выполнить. В сущности, именно этого я и хочу добиться.
- У меня есть модель пользователя и модель документа
- Пользователь А может создать документ. Теперь он является администратором документа.
1. затем он может добавить других отдельных пользователей в свой документ и назначить им разрешения, например: (редактор, просмотрщик, администраторы)
2. Он также может создать команду, группу пользователей и добавить несколько команд в свой документ. Каждый пользователь в команде, которую пользователь А добавил в свой документ, также будет иметь определенный уровень разрешений. Пользователь может принадлежать ко многим командам.
Я немного запутался в ассоциациях, которые мне придется настроить.
Что я уже пробовал:
This is the code I have so far, which has not incorporated the team aspect:
<pre> class User < ApplicationRecord has_many :participations has_many :documents, through: :participations end class Document < ApplicationRecord has_many :participations has_many :users, through: :participations end class Participation < ApplicationRecord belongs_to :user belongs_to :document enum role: [ :admin, :editor, :viewer ] end