ruby-on-rails – 为什么check_box表单助手会生成两个复选框,一个隐藏?

这段代码
= form_fo:store_products do | f |
= f.check_Box:track_inventory

创建这个HTML

<input name="product_group[products_attributes][0][store_products_attributes}[1342647745501][track_inventory]" type="hidden" value="0">

<input id="product_group_products_attributes_0_store_products_attributes_1342647745501_track_inventory" name="product_group[products_attributes][0][store_products_attributes][1342647745501][track_inventory]" type="checkBox" value="1">@H_404_7@ 
 

一个隐藏元素的原因是什么?

解决方法

HTML规范说不应该由webbrowsers发送未选中的复选框.这意味着,如果未选中,则rails不会收到表单上的复选框是否未选中的记录.这很重要,例如,如果用户正在编辑先前已选中复选框并且他们已决定取消选中该复选框的记录,则rails将不知道更新此属性.

隐藏字段与复选​​框具有相同的名称,因此如果未发送复选框,则会发送hidden_​​field(值为“0”,表示未选中).这样,rails将始终收到有关复选框是选中还是未选中的信号.

有关此问题的更多信息,请参见APIDock

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...