Rails:fields_for 不工作

Rails: fields_for not working

我正在关注关于 Nested Model FormRailsCast,但有些事情似乎很奇怪。

这里是Model关系

class Question < ActiveRecord::Base
  belongs_to :survey
end

class Survey < ActiveRecord::Base
    has_many :questions
    accepts_nested_attributes_for :questions
end

_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 %>

survey_controller.rb

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

    3.times do |i|
      @survey.questions.build
    end
  end

我原以为它会像

那样显示

然而,它没有显示 3 块问题。

您错过了表单中非常小但很重要的部分 - 实际上是 输出 f.fields_for 调用。

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