2012-04-19 10 views
0

私はかなり新しいレールですが、私は苦労しています。私はここで多くの質問を見てきました。私の知識のギャップは本当に私を2と2一緒に。ルーキー・オン・レールモデル・アソシエーション機能の基本テニス・リーグ

このサイトは、女性ダブルスのテニスリーグのサイトです。

これまで私が行ってきたことは、私はいくつかのステップを取り戻す必要があると思います。

私はレールが4つのモデルとビューなどなどとコントローラを作成するための足場を生成する使用

モデルは次のようになります。

players: 
firstname 
lastname 
timestamps 

teams: 
playerone 
playertwo 
timestamps 

fixtures: 
team1 
team2 
court 
division 
date 
timestamps 

results: 
fixture 
set1team1 
set1team2 
set2team1 
set2team2 
set3team1 
set3team2 
team1 
team2 
timestamps 

チームが2人の選手を持っているように、私は関連付けを作成したいです(playerone、playertwo)、各フィクスチャには2つのチーム(team1、team2)があります。

次に、結果モデルのフィクスチャをフィクスチャモデルのレコードに関連付けることが必要でした。

チームは3セットの6試合をプレーするので、結果モデルの別々のフィールドは各チームの結果を各ゲームセットに記録し、チームに最終スコアを与えることです。チームが勝利した場合(最初から6試合)、6ポイントが追加されます。

ここで私は関係で何をしようとしています。

class Team < ActiveRecord::Base 
    has_many :players 
    has_one :playerone, :class_name => "Player", :foreign_key => "player" 
    has_one :playertwo, :class_name => "Player", :foreign_key => "player" 
end 

class Player < ActiveRecord::Base 
    belongs_to :team 
end 

class Result < ActiveRecord::Base 
    has_one :fixture 
end 

class Fixture < ActiveRecord::Base 
    has_many :teams 
end 

私は、レール内のビューやレイアウトのコツを持っているように見えますが、私はまだ強力なサイドラウンド私の頭を持っていません。

私は多くのチュートリアルを見てきましたが、これは本当にイライラしていて、誰かが助けてくれることを望んでいました。

ありがとうございます。

アダム

答えて

0

試してみて、playeroneとplayertwoのための関係を定義する必要はありません。チームの編集ビューでは、2つの選択肢があり、それぞれが選手のリストから選択します。

同じことがFixtureにあります。そこにも関係は必要ありません。実際、モデルをレイヤーアウトしたやり方とは関係がないので、適切なモデルから選択するさまざまな選択肢を編集ビューに作成するだけです。

「has_tone」や「has_three」関係のように、has_oneやhas_manyという2つの「has」関係があります。そのような関係はありません。これらの事実はすでにハードコードされていますあなたのモデルの属性。

+0

チームとプレイヤーの関係を削除してselectを使用するだけで、テーブルの列に同じデータが含まれていても関係はありません。 そして、フィクスチャーも同じですか? – user1339378

+0

はい、あなたのビュー(プレイヤー1とプレイヤー2の選択は、効果的に適切な関係を強制しています。 – RadBrad