いくつかの個人的な開発のために単純なWebアプリケーションを作成しようとしていますが、私は障害にぶつかりました。私は働いているクラスを作成しましたが、関係をどのように定義するか、モデルが適切であるかどうかはわかりません。Ruby on Railsのオブジェクトと関係
引数のために、私はすでに存在で、次のクラスがあります。ユーザー、チーム、とアスリート
を私がのために努力していた機能を追加することで、チームを作成するユーザーのためにあります1人のアスリートをチームオブジェクトに追加します。他のユーザーは、チームに選手を追加することも、チーム選手の既存のアスリートに選手を追加することもできます。本質的には、アスリートオブジェクトの配列をラップするために何らかの種類のクラスを作成したいと考えています。AthleteArrayと呼びます。でしょうhave- AthleteArray
- のでチームが持って、多くのだろうAthleteArrays
- :私の理解が正しければ
、これらが適切であろう関係があります多くスポーツ選手となりますに属します a チーム
- 選手だろうユーザー属し-に、そしてだろう属し-にAthleteArray。
- ユーザ多くの人がアスリートですが、それは彼らの関与の程度です。
AthleteArrayクラスは、属性を持っていませんので、それは(それは単にIDを持っているでしょう)のActiveRecordオブジェクトとして作成することが賢明でしょうか?このアイディアを実装する別の方法がありますか(アスリートオブジェクトの配列の配列を持つためにチームクラスを定義できますか?)私はRoRの知識はほとんど持っていませんが、Web開発を始めるには良い場所だと思いました。どんな助けもありがとう。前もって感謝します!
編集:アスリート、チーム、およびAthleteArraysの名前は重要ではありません。アスリートは基本的にはアスリートのリストに対して検証されたコメントであると仮定する。重複は許容されます。投稿された回答を理解している場合は、基本的に両親のIDを取得する中間クラスを作成する必要があります。
Omarへの返信です: 最終的に、私は投票システムを追加したいと思います。だから基本的なチームが作成された後、ユーザーは個々のプレイヤーの代替案を提案することができ、ユーザーは最良の選択肢に投票することができます。例えば、私が作成したchess_playersのチームを持っている場合:
- ボビー・フィッシャーを
- ガルリ・カスパロフ
- ウラジーミル・クラムニク
誰かがカスパロフをクリックすると、より良い選手があろうと決めるかもしれませんディープ・ブルーなので、このオプションはKasparovの下でネストされているように見えます。この同じプロセスはすべてのキャラクターで起こりますが、コメントシステムとは異なり、「ディープブルー」に反応して別のプレーヤーに代わることはできず、単にポジション番号2に応答し、別のプレーヤーを提案するだけです。
私の質問を編集しました。今はもう少し理解できると思っています。レスポンスありがとう! – Grantismo
変更に基づいて、チーム/選手の参加のモデルが必要だと思います。これは、通常のassoc_1_id、assoc_2_idテーブルよりもずっとスマートにする必要があり、チームや選手のテーブルではなく、他のフィールドを必要とするためです –
助けてくれてありがとう、私はそれを試してみますそれが動作しない場合は戻ってきてください。 – Grantismo