0

我想我需要一点帮助来理解一个简单的 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 %>
4

1 回答 1

0

试试这个。我觉得这有点乱,但也许它会起作用。

@pickem.result = @pickem.build_result if @pickem.result.blank?
于 2012-07-13T03:16:24.870 回答