我有一个篮球应用程序,其中名册上有很多玩家,而玩家属于名册。
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_Form 2.0和Twitter Boot Strap。有没有我没看到的东西?我觉得这应该很简单,但我似乎无法弄清楚它为什么不渲染。提前谢谢。
答案 0 :(得分: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| %>