1

我有一个篮球应用程序,其中一个名册有很多球员,一个球员属于一个名册。

名册.rb

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

播放器.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_Form 2.0 和 Twitter Boot Strap。有什么我没有看到的吗?我觉得这应该很简单,但我似乎无法弄清楚为什么它没有渲染。提前致谢。

4

1 回答 1

2

您需要在 fields_for 块上使用等号:

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

编辑:

所有这一切都假设@new_player == Roster.new

我必须用 Formtastic 来做这件事,所以它可能与 Simple Form 类似。

查看源代码,它为您提供了将嵌套对象向下传递给嵌套表单的选项:

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 回答