Rails:fields_for无效

Cod*_*ang -1 ruby-on-rails nested-attributes

我下面这个RailsCastNested Model Form的事,但似乎不可思议.

这是Model关系

class Question < ActiveRecord::Base
  belongs_to :survey
end

class Survey < ActiveRecord::Base
    has_many :questions
    accepts_nested_attributes_for :questions
end
Run Code Online (Sandbox Code Playgroud)

_form.html.erb(由创建者scaffold)

<div class="field">
    <%= f.label :name %><br>
    <%= f.text_field :name %> 
  </div>
   <% f.fields_for :questions do |builder| %>
    <div class ='question'>
      <%= builder.label :content, "Question" %>
      <br>
      <%= builder.text_area :content, :rows => 3 %> 
    </div>
  <% end %>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

survey_controller.rb

# GET /surveys/new
  def new
    @survey = Survey.new

    3.times do |i|
      @survey.questions.build
    end
  end
Run Code Online (Sandbox Code Playgroud)

我期待它会显示出来

在此输入图像描述

但是,它没有显示3个问题块.

sev*_*cat 6

你错过了表格中一个非常小但很重要的部分 - 实际输出了这个f.fields_for电话.

您需要调用<%= f.fields_for :question(注意=)实际输出生成的表单.