我想我需要一点帮助来理解一个简单的 Rails 3.2 与嵌套表单的一对一关联是如何工作的。我有一个积分表格,当我第一次访问它时,它会加载所有内容都是空的。当我保存一切看起来不错时,它甚至有正确的外键。现在,当我尝试通过加载表单再次编辑此记录时,外键(results.pickem_id)被清空并且表单中没有任何内容。它在第二个@pickem.build_result
被调用时被清空。我需要做什么才能允许编辑此表单?我觉得我在这里走在正确的轨道上,所以希望我错过了一些简单的东西。我只包含了相关的代码片段,但如果需要可以提供更多。
皮克姆.rb
attr_accessible :result_attributes
has_one :result
accepts_nested_attributes_for :result
结果.rb
belongs_to :pickem
pickems_controller.rb
def update
@pickem = Pickem.find params[:id]
if @pickem.update_attributes params[:pickem]
redirect_to pickem_path(@pickem), :notice => 'The pickem has been successfully updated.'
else
render "edit"
end
end
def results #This is the results form
@pickem = Pickem.find params[:id]
@pickem.build_result #:pickem_id => params[:id]
end
结果.html.erb
<%= simple_form_for @pickem, :html => {:class => "form-horizontal"} do |f| %>
<%= f.simple_fields_for :result do |r| %>
<%= r.input :pickem_id, :input_html => { :value => params[:id] }, :as => 'hidden' %>
<%= r.input :first_name, :label => 'First Name:' %>
<% end %>
<% end %>