2016-08-28 14 views
0

id列とは異なる列に参照を追加することはできますか?二つのモデル(モデル1とモデル2)の関係が作成される通常IDと異なる選択した列への参照を追加する

は、関係モデルを作成するためmodel1:referencesmodel2:referencesの使用が自動的に(インデックスと外部キーの参照とともに)model1_idmodel2_id列を追加しますインスタンスModel1 = TeacherModel2 = Pupilため

rails generate Relationship model1:references model2:references 

セイ:MODEL1/MODEL2関連で使用するため。
モデル2のレコード(瞳孔のレコード)が毎時更新され、次にレーキタスクで更新されると仮定します。とranking(1〜100)を保持してその属性の値(たとえばnameschool_credits)が変更されます。

教師をpupil_idと関連付けることはあまり意味がありません。
代わりにの代わりにpupil.nameという属性を外部キー参照として使用して、各生徒の生徒の名前を関連付ける必要があります。

これは可能ですか?
コマンドにどのようなオプションを追加できますか?rails generate Relationship、またはreferenceこの結果を得るにはどうすればよいですか?

+0

瞳孔に名前と瞳孔の名前が関連付けられている場合、どのように関連付けを決定しますか? –

+0

Say id 1 rank 1はポール100クレジット、1 d 2ランク2はケビン90クレジット、id 3ランク3は80クレジットのLeaです。 Leaが30クレジットを獲得した場合、id 1ランク1はLeaという名前と110クレジットで更新されます。ポールとケビンも変わる。 Leaがteacher1の生徒である場合、teacher1はID3ではなくLeaに関連付けられます。 – Asarluhi

答えて

1

はい、できます。 foreign_keyとprimary_keyのセクションを次のlinkからチェックしてください。私はジェネレータを使用しないので、ジェネレータに渡すオプションについてはコメントできませんが、テーブルに外部キーとして使用するカラムが存在し、モデルファイルに適切なforeign_keyを割り当てる必要があります。

しかし、なぜそれが必要ですか? IDとランキングを同じに保つ必要があるユースケースの種類はわかりません。

+0

例えばWtaランキング(女性テニス)をとります。毎週更新されます。ノコギリを使用して、ランキングを探す名前とポイントを更新できます。テニス選手の痕跡を100点満点にするのは難しい(つまり、最初の100点を脱出する者)。 – Asarluhi

関連する問題