する質問をすることでしか得られない、回答やアドバイスがある。RailsのModelの関連付けについて質問です。RailsのModelの関連付けで悩んでいます。現在、Railsの勉強(完全に勉強用です。)でグループ機能付きのブログサービスを開発しております。Modelの関連付けの件で質問があります。内容と設定は以下の通りです。Modelの設定:Users(ユーザー情報)Posts(ユーザーが投稿するPost)Comments(ユーザーが投稿したPostに他のユーザーがするコメント)Groups(UserとPostが属するグループ)上記のModelの設定でUsersとPostsとGroupsの関連付けを実装中で悩んでいます。以下のような関係の関連付けを作成したいです。Userは多数のGroupに所属でき、多数のPostを持つ。Groupは多数のUserとPostを持つ。ユーザーは自由に投稿を作成して投稿できる。ユーザーは他のユーザーの投稿に自由にコメントできる。ユーザーは自由にグループを作成できる。グループを作成したユーザーがそのグループの管理者になる。(これはどんな実装をすれば良いか分かりません。ここもアドバイス頂けると幸いです。)現在は、以下の関連付けまで完成しておりますが、Groupの関連付けが分かりません。:post上記のGroupの関連付けがわかりません。アドバイスなどよろしくお願いいたします。補足情報(言語/FW/ツール等のバージョンなど)Ruby:2.1.8Rails:4.2.1attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。:through関連付けは、他方のモデルと「多対多」のつながりを設定する場合によく使われます。...この章や、このページ全体の内容を調査するとよいとおもいます。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。10:42横槍失礼します。ほうがらく横槍失礼します。編集そうなんですね!ありがとうございます!ご回答を参考に色々と調べました。以下で問題ないでしょうか?ご意見など頂けますと幸いです。ご回答を参考に色々と調べました。ご意見など頂けますと幸いです。user_idとpost_idが必要で美しくないし、コメントをつけたいモデルが増えた時にいちいちidを入れないといけませんPolymorphicをオススメします。人間がやるとバグの温床ですが、Railsが全て処理してくれます。Polymorphicをオススメします。Railsが全て処理してくれます。15:43ご回答ありがとうございます!ポリモフィックの場合は、将来的にCommentの処理を違うモデルにする際に便利だと思うのですが今回の場合はまだそのような処理を検討しておりません。user_idとpost_idが必要になるのは理想的な実装ではないのでしょうか?よろしくお願いいたします。今回の場合はまだそのような処理を検討しておりません。18:44Commentからuserやpostを探す時ふた手間がかかるぐらいで、問題はないと思います。そもそも、途中から組み換えても、副作用が少ないのがrailsの良いところです。ベストは運用しながらみつけていくこともできます。不安もあるでしょうが、あれこれ考えずに、まず、つくる、そして、動かす、使ってもらう。railsの魅力なんじゃないですかねCommentからuserやpostを探す時ふた手間がかかるぐらいで、問題はないと思います。そもそも、途中から組み換えても、副作用が少ないのがrailsの良いところです。ベストは運用しながらみつけていくこともできます。不安もあるでしょうが、あれこれ考えずに、まず、つくる、そして、動かす、使ってもらう。頂いたご意見への回答は行っておりません。