2011-08-08 3 views
0

代わりに、1レール+ radio_button_tag

、私はテキストボックスとその対応選択した値からのすべての3つの名前を持つレコードを更新したいので、私はこのコードを使用するオプション、

は、他の仕事は、この

を行うために周りにありますビュー

<% 1.upto(3) do |i| %> 
<%= text_field_tag "fields[#{i}][name]",'' %> 
<%= radio_button_tag "fields[#{i}][answer]", '1', false%> 
<% end %> 

コントローラ

params[:fields].each do |i, values| 
u = Sample.new 
u.name = values["name"] 
u.answer = values["answer"] ? 1 : 0 
u.save 
end 

おかげで、

+0

は、<%= radio_button_tag「フィールドを[使用してみてください#{i} _answer] "、 '1'、false%>コントローラのu.answer = values ["#{i} _answer "]? 1:0 "i"はラジオをテキストフィールドに関連付けるのに役立つインデックスです。 – Raghu

答えて

1

あなたは、おそらくこのような何かしたい:

<% 1.upto(3) do |i| %> 
    <%= text_field_tag "fields[#{i}][name]",'' %> 
    <%= radio_button_tag "fields[answer]", '#{i}', false%> 
<% end %> 

をこれがの値で解答欄が得られます1,2または3依存性gが1つ選択されます。

+0

このパラメータは、このようにコントローラ{"1" => {"name" => "aaaaa"}、 "2" => {"name" => "bbbbb"}、 "is_answer" => " \#{i} "}、回答フィールド値が – lamrin

+0

であり、保存中に2つではなく3つのレコードが保存され、すべての回答値が0 – lamrin

1

最初にネストされた属性が問題に適している可能性があります。私は、あなたが今近づいている方法の代わりにそれらを調べることをお勧めします。

あなたが物事に固執したいのであれば、あなたはいくつかの調整をして仕事をすることができます。

あなたが各オプションに固有の値(i)を使用する必要があるラジオボタンを正常に動作させるには:

<%= radio_button_tag "answer", i, false%> 

次に、あなたのコントローラに

u.answer = params["answer"] == i ? 1 : 0