0
我想我需要一点帮助来理解一个简单的Rails 3.2与嵌套窗体的一对一关联是如何工作的。我有一个积分表,当我第一次浏览它时,它会将所有内容都加载到空白处。当我保存一切看起来不错时,它甚至有正确的外键。现在,当我尝试通过加载表单再次编辑此记录时,外键(results.pickem_id)被取消,并且没有任何内容加载到表单中。它被调用第二个@pickem.build_result
。我需要做什么才能编辑此表单?我觉得我在这里的正确轨道,所以希望我错过了一些简单的东西。我只包含了相关的代码片段,但如果需要的话可以提供更多的代码片段。Rails 3.2 build_association在表单加载时将我的外键清空
Pickem.rb
attr_accessible :result_attributes
has_one :result
accepts_nested_attributes_for :result
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
results.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 %>
你先生,是男人。这工作。不知道它是否是首选的“Rails方式”,但看起来很简单。 – 2012-07-13 04:10:19