Estoy atascado con esta simple tarea de selección. Tengo estos modelos:Rieles: selección del botón de selección para objetos anidados
# id :integer(4) not null, primary key
# category :string(255)
# content :text
class Question < ActiveRecord::Base
has_many :choices, :dependent => :destroy
accepts_nested_attributes_for :choices
end
# id :integer(4) not null, primary key
# content :text
# correct :boolean(1)
# question_id :integer(4)
class Choice < ActiveRecord::Base
belongs_to :question
end
Cuando creo una nueva pregunta, quiero especificar en una forma anidada no sólo el content
del Question
, pero incluso los content
de 3 Answer
objetos y seleccione con un botón de opción cuál es la respuesta correct
. En la acción new
del controlador, tengo esto:
def new
@title = "New Question"
@question = Question.new
3.times { @question.choices.build }
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @question }
end
end
Este es el código del formulario:
<%= simple_form_for @question do |question_form| %>
<%= question_form.error_notification %>
<div class="inputs">
<%= question_form.input :content, :label => 'Question' %>
<%= question_form.input :category, :collection => get_categories, :include_blank => false %>
<% @question.choices.each do |choice| %>
<%= question_form.fields_for :choices, choice do |choice_fields| %>
<%= choice_fields.input :content, :label => 'Choice' %>
<%= choice_fields.radio_button :correct, true %>
<%= choice_fields.label :correct, 'Correct Answer' %>
<% end %>
<% end %>
</div>
<div class="actions">
<%= question_form.button :submit %>
</div>
<% end %>
El problema es que este código producir tres botones de radio con diferentes nombres: puede seleccionar más de una respuesta correcta, y este no es el comportamiento correcto. Los nombres de los tres botones de opción son question[choices_attributes][0][correct]
, question[choices_attributes][1][correct]
y question[choices_attributes][2][correct]
.
La pregunta es: ¿cómo puedo crear tres botones de opción con el mismo nombre, para seleccionar una y solo una respuesta correcta? ¿Cómo puedo crear un params
gama correcta, con el fin de guardarlos en la acción create
de esta manera:
def create
@question = Question.new(params[:question])
# render or redirect stuff....
end
Muchas gracias!
tengo el mismo problema, por qué nadie ayudó a responder? :( –
¿Alguna vez encontró una respuesta para esto? ¡Me rasgué el pelo! – henryeverett