2017-02-04 15 views
0

をレール。これまではネストされたフォームを作成できるCocoon gemを実装しました。 Cocoonの部分変数にいくつかの変数を渡したい場合を除き、すべてがうまくいきます。設定地元値、私は簡単なクイズアプリを作成しています4

問題:静的な値を問題なく送信できますが、Jqueryで計算された動的な値を渡したいと思います。

マイコード:

index.html.erb

<%= link_to_add_association 'Pievienot atbildi', f, :answers,render_options: {locals: { question_id: 'Holmes' }}, :class=>"btn btn-default" %> 


<script type="text/javascript"> 
      var n = $(".reg_input_question").length; 
      alert(n); 
</script> 

_answer_fields.html.erb

<%= f.radio_button :correct_one, false, :checked => false, :name=> question_id %> 
    <%= link_to_remove_association "Dzēst atbildi", f , :class=>"btn btn-default text-danger"%> 

私はインデックスからnは変数を送信したいです.html.erbページから_answers_fields部分。私は静的な値 "ホームズ"を送信することができますが、私はどのように {locals: { question_id: 'Holmes' }}スクリプトを使用して他の値を設定するにはわからない。

私は通常のパーシャルでそれを行うためにGreat exampleを見つけましたが、私はその例のように行うことができませんコクーン部分的取扱いを使用していて。

私は何を達成しようとしています

:私は3つのネストされたモデルのテスト、質問と答えを持ってい

。最初に私は質問を作成しています:

<%= link_to_add_association "Pievienot jautājumu", f, :questions, :class=>"btn btn-default" %> 

質問が作成されたら、上記のコードで回答を作成できます。回答部分は、回答テキストとcorrect_oneブール値で構成されます。 radio_buttonを使用して、新しく作成された回答の中から正しいものを1つだけ選択できるようにしています。

問題:私は、複数の質問を作成すると、その答えは同じRADIO_BUTTON名「ホームズ」を共有しています。ユーザーが最初の質問の正解を選択し、次に2番目の質問回答をクリックすると問題が発生します。前の選択はクリアされます。任意の助けを事前に

1. Question 
    <%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %> 
    <%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %> 

2. Question 
    <%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %> 
    <%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %> 

ありがとう:現在、私はこのようにしてい

1. Question 
    <%= f.radio_button :correct_one, false, :checked => false, :name=> 1 %> 
    <%= f.radio_button :correct_one, false, :checked => false, :name=> 1 %> 

2. Question 
    <%= f.radio_button :correct_one, false, :checked => false, :name=> 2 %> 
    <%= f.radio_button :correct_one, false, :checked => false, :name=> 2 %> 

は、私はこのようにしたいです。

+0

代わりにチェックボックスが必要だと思います。ラジオボタンを使用すると、同じフィールドに異なる値を指定できます(1つだけ選択)。答えが正しいかどうかを示したいので、答えごとに値を保存する必要がありますか?ラジオボタンを押すと自動的に他の値の選択が解除されますが、この場合はデータベースに正しく保存されません。私はあなたの代わりにこのようなものが必要だと思う:http://stackoverflow.com/questions/2947569/how-to-automatically-uncheck-a-checkbox-if-another-checkbox-is-checkedthrough-through-j – nathanvda

答えて

0

私はこの問題への道の周りが見つかりました:

_answers_fields.htmlに。ERBは

 $('input[name="Holmes"]').each(function() { 

     var id = $(this).attr('id').match(/\d+/); 

     $(this).attr('name', id); 

     }); 

基本的には、このスクリプトは名前「ホームズ」を持つすべての解答欄をループし、IDの一部にname属性を変更する(各入力のIDとして特定のリソースがある - それぞれが質問IDはネストされたリソースに渡されます)。

醜いアプローチですが、必要に応じて機能します。

関連する問題