2012-02-22 14 views
9

Ben bir formda var (form_tag) böyle birkaç onay kutularını: onlarıRaylar 3 - kontrol (onaylanmamış) onay kutularının nasıl işaretlenir?

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

Ve güncelleme: Ben bazı onay kutularını kontrol ederken

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

Bu, sadece bir an çalışır - gönderebilir Onları ve kurtarılacaklar. Bu iyi. Ama bütün onay kutularını işaretini zaman - formunu göndermek -

bana hiç ipucu verebilir misiniz ... değerini sütunlarında set olmaz DB tabloda, böylece hiçbir şey happend, nasıl düzeltebilirim?

peşin

cevap

20

denetlenmeyen bir onay kutusu sunucusuna herhangi bir değer göndermez Bunun nedeni teşekkür ederiz. Bu Raylar aşmak için böyle bir kod üretir check_box yardımcı sağlar:

<%= 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

sayesinde, ancak gizli giriş de, onay kutusunu önce olmalıdır: Alternatif

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

, hidden_field_tag ile gizli bir alan eklemek yazarken dizi bana çalışmıyor – user984621

+0

Bu yöntem çalışır, ama benim için <% = hidden_field_tag ​​'model_name [column_name]'%> 'var ve dizinin başında boş bir tırnak kümesi saklar. .. Ekstra boş tekliflerden nasıl kurtulurum? – Gcap