2016-06-22 3 views
1

У меня есть этот вид:fields_for не гнездятся атрибуты

<%= form_for(:quiz_responses, url: quiz_responses_path) do |f| %> 

<%= f.hidden_field :name, value: @survey.name %> 

<%= fields_for :questions do |ff| %> 
<% @questions.each do |question| %> 
<ul> 
<%= ff.hidden_field "#{question_counter}", value: question.content %> 
<%= ff.label question.content %> 

<%= fields_for :answers do |fff| %> 
<% question.answers.each do |answer| %> 

<%= fff.hidden_field "#{answer_counter}", value: answer.content %> 
<% answer_counter += 1 %> 
<%= fff.label answer.content %> 

<%= f.radio_button("user_answer[#{user_answer_counter}]", answer.content) %> 


<% end #questions.answers.each do %> 
<% end #fields_for answers %> 
<% user_answer_counter += 1 %> 
</ul> 
<% question_counter += 1 %> 
<% end #@questions.each do %> 

<% end #fields_for questions %> 

<%= f.submit %> 
<% end #form_for%> 

Мои хотел результат в том, что я получаю Params хэш с: quiz_responses, содержащий: вопросы хэш, и каждое значение вопроса внутри этой хэша содержит: ответы хэша содержащие ответы. Но это то, что я вижу: enter image description here

где есть вопросы хэша, содержащие все вопросы и ответы отдельного хэша, содержащие ответы на все вопросы, и как-то user_answeris внутри quiz_responses. Как исправить этот беспорядок?

ответ

2

Вы должны вызвать fields_for на форме объекта, как это:

<%= form_for(:quiz_responses, url: quiz_responses_path) do |f| %> 

    # ... 

    <%= f.fields_for :questions do |ff| %> 

    # ... 

    <%= ff.fields_for :answers do |fff| %> 

    # ... 
+0

Правильно! Это фиксировало проблему гнездования. Но теперь все мои ответы находятся в одном вопросе, хотя я хочу, чтобы внутри вопроса были только ответы, связанные с этим вопросом. Поэтому вместо q1> 1a, 1b, dc, 1d, q2> 2a, 2b, 2c, 2d, 1a-2d ВСЕ внутри q1 и q2 пусто. Например: http://imgur.com/uadbWU6 Почему это происходит? –

+0

Если это помогает, я определил их перед form_for: <% question_counter = 0%> <% answer_counter = 0%> <% user_answer_counter = 0%> –

+0

никогда не было, я понял! –

Смежные вопросы