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

そして、フォームの最初の部分だけをレンダリングしているが、ネストされたものはレンダリングしていない私のビュー

<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_Form2.0とTwitterブートストラップを使用しています。見えないものはありますか?これは単純なはずだと思いますが、なぜレンダリングされないのか理解できないようです。前もって感謝します。

4

1 に答える 1

2

fields_forブロックに等号が必要です。

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

編集:

これはすべて、@new_player == Roster.new

私はFormtasticでこれを行わなければならなかったので、SimpleFormと似ているかもしれません。

ソースを見ると、ネストされたオブジェクトをネストされたフォームに渡すオプションがあります。

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

したがって、次のようなことを試してください。

<%= f.simple_fields_for :players, @new_player.players.build do |x| %>
于 2012-04-12T21:42:48.423 に答える