2016-09-20 16 views
0

これは私のコードですカスタム属性をform_forに追加するにはどうすればよいですか?

<%= form_for @quiz do |f|%> 
    <% @questions.shuffle.each do |q| %> 
    # get_answers returns an array of 4 random answers 
    <% answers = q.get_answers %> 
    <%= f.label q.inquest %><br> 
    <% answers.each do |a| %> 
     <%= f.radio_button <need help here!>, a %> 
     <%= f.label <need help here!>, a %><br> 
     <%= f.hidden_field <need help here!>, q.id %> 
    <% end %> 
    <% end %> 
<% end %> 

私のクイズテーブルは、私はカスタムは私がポストアクションでへのアクセス権を持つことができるという属性を追加するにはどうすればよいの属性

concept_id 
user_id 

を持っていますか?それは動的でなければならないので、そこにいくつの質問があるかによって規模を変えることができます。私は私のparamsのためにこれのようなものが欲しい。

{ 
    user_answers: { 
    question1: { 
     :question_id 
     :answer 
    { 
    } 
} 

がありますどのように多くの質問によっては、RADIO_BUTTONが答えを運ぶだろうがquestion_idを運ぶだろう。.. question1、2、3、4などのように

hidden_​​fieldを行きますよ。私はそれを保存する必要はありません、私はそれらにアクセスする必要があります

+0

こんにちはf.radio_buttonのとスタックオーバーフローを歓迎します。クール - いいですね。だから、 'each_with_index'を使い始めるといいでしょう(あなたはあなたの答えを知っているので)、フォームフィールドの名前の一部としてインデックスを使用します。例えば、<%= f.hidden_​​field "question_id _#{idx}"、:value => q.id%> ' –

+0

ありがとう!私はラジオボタンのために '<%= f.radio_button" answer#{index + 1} "、a%>'を追加しましたが、定義されていないメソッドエラーが発生しました。これは '' answer#{index + 1} "@quizの属性ではないからです。私はそれをどのように働かせるでしょうか? – LeongZeno

+0

見つけたら、 'form_for'バージョンの代わりに' _tag'バージョンを使用します:) –

答えて

1

[OK]を、私はこれらのフォームタグをfに呼び出すべきではないことに気付きました。代わりに、独自のフォームタグ例えば

として、それらを持っている:

radio_button_tag代わり

関連する問題