2012-02-22 8 views
9

私は、フォーム( form_tag )にこのようないくつかのチェックボックスがあります。Rails 3 - チェックボックスをオフにする方法は?

<%=check_box_tag 'model_name[column_name]', 1, (@data.model_name.column_name == 1 ? true : false)%> 

そして、彼らが好きな更新:

variable = ModelName.find(params[:id])    
variable.update_attributes(params[:model_name]) 

私はいくつかのチェックボックスをチェックしたときにこれは、一瞬でのみ動作します - 送信します彼らと彼らは救われるでしょう。それはいいです。 しかし、私はすべてのチェックボックスのチェックを外したときに - フォーム送信 -

はあなたが私に任意のヒントを与えることができる...値の列にを設定しませんDBテーブルに、そう何も起こったが、どのようにそれを修正するには?

は未チェックチェックボックスがサーバーに任意の値を送信しませんので、この問題が発生した事前

答えて

20

でいただきありがとうございます。おかげで、しかし、隠された入力で、チェックボックスの前でなければなりません

<%= hidden_field_tag 'model_name[column_name]', '0' %> 
<%= check_box_tag 'model_name[column_name]', 1, (@data.model_name.column_name == 1 ? true : false) %> 
+0

hidden_field_tagで隠しフィールドを挿入し、また

<input type="hidden" name="model[attr]" value="0" /> <input type="checkbox" name="model[attr]" value="1" /> 

:このRailsのを回避するには、次のようなコードを生成check_boxヘルパーを提供し、あなたが書いているようなシーケンスは私の作品ではありません – user984621

+0

この方法はうまくいきますが、私にとっては '<%= hidden_​​field_tag 'model_name [column_name]'%>'を持っていて、配列の先頭に空の引用符を格納しています。 ..余分な空の引用符を取り除くにはどうしたらいいですか? – Gcap

関連する問題