私はレールアプリをボトムアップで構築していますが、モデルの関連付けについて少しガイダンスが必要です。
私たちはクライアントを抱えており、複数のプロジェクトに関与しています。クライアントには、プロジェクトに取り組み、ファイルやメモでプロジェクトに貢献するユーザー (従業員) がいます。また、プロジェクトでクライアントと協力します(ファイル、メモを追加します)。プロジェクトには、貢献 (ファイル、メモ) を行う貢献者 (別のクライアントの一部である可能性のあるユーザーまたは下請け業者) がいます。
したがって、モデルに関しては、すべてを適切にキャプチャしていることを確認したいと考えています。これが私が持っているものですが、それがすべて正しいとは確信しておらず、他の協会にも開かれています.
Client
has_many :projects
has_many :users
Project
belongs_to :client
has_and_belongs_to_many :contributors
has_and_belongs_to_many :contributions
User
belongs_to :client
belongs_to :contributor
has_many :contributions
Contributor
has_and_belongs_to_many :projects
has_one :user
has_many :contributions
Contribution
has_and_belongs_to_many :projects
belongs_to :contributor
貢献は、ファイルとメモのモデルに関連付けられると思います。プロジェクトは「次のステップ」モデルに関連付けられている可能性があります...すべてネストされたリソースとしてだと思います。
ありがとう