2016-06-26 4 views
1

私はこのフォームがあります。ラジオボタンの動作を変更するにはどうすればよいですか?

<%= form_for(@submitted_quiz) do |f| %> 
<%= f.hidden_field :quiz_id, :value => @quiz.id %> 
<%= f.hidden_field :name, :value => @quiz.name %> 

<%= @quiz.questions.each do |question| %> 

<%= f.label question.content %> 

<%= question.answers.each do |answer| %> 
<%= f.label answer.content %> 

<%= f.fields_for (:submitted_answers) do |ff| %> 


<%= ff.radio_button :content, value: answer.content %> 

<% end #fields_for (:submitted_answers) do %> 
<% end #answer.each do %> 
<% end #questions.each do %> 


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

をしかし、私はすべてのラジオボタンをオフにチェックすることができるよ、代わりに質問セットごとに1つのラジオボタンの(各質問は4つの答えを持っていると私は一つだけをオフにチェックしたいです5つの回答のうち)。それぞれがsubmitted_answersがユニークで、それぞれのスタンドアロンラジオボタンを作成しているので、なぜこれが起こっているのか分かりますが、実際にこれを修正する方法はわかりません。何か案は?

+0

私はF'は、フォームのすべての質問を保持している 'ので' F'が適切なソリューションであるとは思わない(そう、彼は一つだけ質問に答えることができるようになります!!) – niceman

+0

私はそれが必要とは思いません'ff.radio_button'にしてください。これは、提出された答えの' content'値を設定したいからです。私が 'f.radio_button'を作ると、' submitted_quiz'の 'content'値を設定しようとします(存在しません)。 EDIT:ニースは何を言ったのですか? – nachime

+0

あなたが 'ff.radio_button'が含まれているブラウザで要素を調べると? 'fields_for'はフォームタグを生成すべきではありませんが、あなたが言うことは – niceman

答えて

0

fields_forquestion.answers.eachループを入れて解決しました。私はこれがどのように機能するのか多少のアイデアを持っていますが、これがなぜ解決されたのかまだ100%は確信していません。

<%= f.fields_for (:submitted_answers) do |ff| %> 

<%= question.answers.each do |answer| %> 
<%= ff.label :content, answer.content %> 
<%= ff.radio_button :content, answer.content %> 

<% end #answer.each do %> 
<% end #fields_for (:submitted_answers) do %> 
関連する問題