1

私はバスケットボールアプリを持っています。ここには選手が多く、選手は選手に属しています。Rails 3.1+ネストされたフォームモデルは正しくレンダリングされません

Roster.rb

class Roster < ActiveRecord::Base 
    has_many :players 
    accepts_nested_attributes_for :players 
    attr_accessible :class_year, :jersey_number, :player_id, :team_id 
end 

Player.rb

class Player < ActiveRecord::Base 
    has_many :gamelogs 
    belongs_to :rosters 
    validates_presence_of :first_name, :last_name 
    attr_accessible :first_name, :last_name, :active 
end 

そしてだけでネスト1枚の

<div class="well"> 
    <h2>New Player</h2> 
    <%= simple_form_for @new_player, :html => { :class => 'form-horizontal' } do |f| %> 
     <%=f.simple_fields_for :players do |x|%> 
      <%= x.input :first_name %> 
      <%= x.input :last_name %> 
     <%end%> 
     <%=f.input :class_year %>  
     <%=f.input :jersey_number %> 
     <%=f.input :team_id, :as => :hidden, :input_html => {:value => params[:id]}%> 

     <div class="well"> 
     <%= f.button :submit, :class => 'btn-primary icon-plus-sign btn-success', :value => "Add To Team" %> 
     </div> 
    <%end%> 
</div> 

画像形式の最初の部分をレンダリングするのではなく、私の見解そのうち動作しない:

http://i.stack.imgur.com/Uoirp.png

私はSimple_Form 2.0とTwitter Boot Strapを使用しています。私が見ていないものはありますか?私はこれがシンプルでなければならないと感じますが、なぜそれがレンダリングされていないのかわかりません。前もって感謝します。

答えて

2

あなたのfields_forブロックの等号必要があります。このすべてが@new_player == Roster.new

私はFormtasticでこれをしなければならなかったので、それはあり得ることを想定している

<%= f.simple_fields_for :players do |x| %> 

は、[編集]をシンプルフォームと同様です。

def simple_fields_for(record_name, record_object = nil, options = {}, &block) 

したがって、このような何かやってみてください:ソースを見ると、それはあなたのネストされたフォームまでネストされたオブジェクトを渡すためのオプションを提供します

<%= f.simple_fields_for :players, @new_player.players.build do |x| %> 
+0

ああ良いキャッチし、私はそれがうまくいくかもしれないと思ったが、それでも同じ結果... – mrcolombo

+0

私の答えを更新しました。 –

+0

私は '@new_player = Roster.new'を使い、あなたの' <%= f.simple_fields_for:players、@ new_player.players.build do | x | %> 'という意味で、何かをレンダリングするのではなく、エラーが出てきます。今私は '不明な属性:roster_id'を取得しています...それがどうなっているのか分かりません。何か案は?申し訳ありませんが、私のRoRの専門知識は初心者から中等度です。 – mrcolombo

関連する問題