次の3つのタイプで構成されるレールのモデルの関連付けを設計しようとしています。
コメンテーター、ブログ投稿、コメント
->これは「ユーザー」ではなく「コメンテーター」です。つまり、ブログ投稿を作成するユーザーではなく、コメントのみを作成します。
コメンテーターとコメントの基本的な関係は明らかですが、
class Commentator < ActiveRecord::Base
has_many :comments
class Comment < ActiveRecord::Base
belongs_to: comments
「Blogpost」をこれに関連付ける方法がわかりません...->コメンテーターが残したすべてのBlogpostと、特定のBlogpostのすべてのCommentatorを要求できるようにしたいと思います。
これは多対多の関係なので、私は次のように使用します。
class Commentator < ActiveRecord::Base
has_many :comments
has_many :blogposts, :through => :comments
class Blogpost < ActiveRecord::Base
"has_many :commentators, :through => :comments
コメンテーターがブログ投稿を作成するとき、コメントテーブルの対応するフィールドに自分でcommenentator_idとblogpost_idをコメントに書き込む必要がありますか?
コメンテーターがコメントを作成するときに関係が自動的に構築される可能性があるため、通過要素としてブログ投稿を使用する方がよいと思います。(コメンテーターが存在しないブログ投稿にコメントを作成できないという事実は別として...)しかし、コメンテーターからコメントへのコメントは多対多の関係ではなく、「has_many...through」を使用できなくなります。
この3種類のモデルを関連付ける良い方法は何ですか?