2012-04-21 3 views
1

私は基本的なレールアプリケーションを作成しようとしています。私は基本的な足場を作成するために生成を使用し、プレイヤーとチームの間にbelongs_to関係をセットアップして、プレイヤーがチームとチームhas_manyプレーヤーを所有するようにしました。モデルコレクション_セレクトの文字列の代わりに0を保存するレール

Iから選択することが、私はそれらをしたいと、私は選手たちの最初の名前でドロップダウンを取得し、新しいチームを作成しようとしたが、それを保存するとき、それは0を保存するとマイフォームビューは、この

<%= form_for(@team) do |f| %> 
    <% if @team.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@team.errors.count, "error") %> prohibited this team from being saved:</h2> 

     <ul> 
     <% @team.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :Playerone %><br /> 
    <%= f.collection_select :Playerone, Player.all, :firstname, :firstname %> 
    </div> 

    <div class="field"> 
    <%= f.label :Playertwo %><br /> 
    <%= f.collection_select :Playertwo, Player.all, :firstname, :firstname %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

のように見えますレコードとして。

リストチーム

Playerone Playertwo
0 0表示編集

新しいチームを破壊

は、もともと私はコレクションは、この <%= f.collection_select :Playertwo, Player.all, :id, :firstname %> これは、IDを挿入しますが、私はにテキストをしたいように選択していました代わりに挿入する。

私はまだ学んでいるように、文書の煩雑さと重い部分を調べています。

ありがとうございました。

答えて

3

これは移行によって異なります。データベースに整数フィールドを作成した場合は、その文字列を保存すると0が保存されます。

(a)では、マイグレーションを変更して整数の代わりに文字列を使用できます。

idを使用して名前を表示して名前を表示できます。

f.collection_select :Playertwo, Player.all, :id, :firstname 

することはできいずれか

class Team 
    belongs_to :playerone, :class_name => "Player" 
    belongs_to :playertwo, :class_name => "Player" 
end 

<%= team.playerone.firstname %> 

、playeroneとplayertwo belongs_toのチームから名前を取得したり、あなたがプレイヤーにファーストネームを委任することができます。

class Team 
    belongs_to :playerone, :class_name => "Player" 
    belongs_to :playertwo, :class_name => "Player" 
    delegate :firstname, :to => :playerone, :prefix => true, :allow_nil => true 
    delegate :firstname, :to => :playertwo, :prefix => true, :allow_nil => true 
end 

<%= team.playerone_firstname %> 

または、(c)整数を使用するbelongs_toを使用できます。ドキュメントを参照してください http://guides.rubyonrails.org/getting_started.html

+0

私はもともと持っていたことを述べました:idしかし、これはプレーヤーのIDを入れていますが、プレーヤーのファーストネームの文字列が必要です。 これは可能ですか? – user1339378

+0

OK、答えは書き直されました。 –

+0

絶対に素晴らしいです!おいしい男!もともと私は値の整数を持っていましたし、文字列への移行を変更し、rake db:resetを実行しました。ドキュメントの多くは、私がレールの世界に少し戸惑っているのを混乱させました。それは大きな援助です。 – user1339378

関連する問題