has_many forma anidada con has_one forma anidada dentro de ella

Actualmente estoy tratando de hacer un formulario para un modelo, que tiene un número dinámico de modelos anidados. Estoy usando formularios anidados (como se describe enRailsCasts 197). Para complicar aún más las cosas, cada uno de mis modelos anidados tiene unhas_one asociación con un tercer modelo, que también me gustaría agregar al formulario.

Para cualquiera que se esté preguntando sobre la normalización o un enfoque inadecuado, este ejemplo es una versión simplificada del problema que estoy enfrentando. En realidad, las cosas son un poco más complejas, y este es el enfoque que hemos decidido adoptar.

Algún código de ejemplo para ilustrar el problema a continuación:

#MODELS
class Test 
  attr_accessible :test_name, :test_description, :questions_attributes
  has_many :questions
  accepts_nested_attributes_for :questions
end

class Question
  attr_accessible :question, :answer_attributes
  belongs_to :test
  has_one :answer
  accepts_nested_attributes_for :answer
end

class Answer
  attr_accessible :answer
  belongs_to :question
end

#CONTROLLER
class TestsController < ApplicationController

  #GET /tests/new
  def new
    @test = Test.new
    @questions = @test.questions.build
    @answers = @questions.build_answer
  end

end

#VIEW
<%= form_for @test do |f| %>
  <%= f.label :test_name %>
  <%= f.text_box :test_name %>
  <%= f.label :test_description %>
  <%= f.text_area :test_description %>
  <%= f.fields_for :questions do |questions_builder| %>
    <%= questions_builder.label :question %>
    <%= questions_builder.text_box :question %>
      <%= questions_builder.fields_for :answer do |answers_builder| %>
        <%= answers_builder.label :answer %>
        <%= answers_builder.text_box :answer %>
      <% end %>
  <% end %>
  <%= link_to_add_fields 'New', f, :questions %>
<% end %>

Este ejemplo de código funciona completamente para la primera instancia de Question. El problema se produce cuando otra pregunta se agrega dinámicamente para ser creada; los campos de respuesta no se muestran. Creo que esto se debe a que solo están diseñados para la primera pregunta en el controlador. ¿Hay alguna manera de lograr esto usando atributos anidados?

Respuestas a la pregunta(1)

Su respuesta a la pregunta