为什么 simple_form 为布尔字段生成两次输入标签(一个隐藏而另一个不)?
在我的 simple_form 中,我有这个:
<%= form.input :over_phone, as: :boolean, input_html: {checked: true} %>
这会产生:
<div class="control-group boolean optional order_over_phone">
<label class="boolean optional control-label" for="order_over_phone">Order over phone</label>
<div class="controls">
<input name="order[over_phone]" type="hidden" value="0">
<label class="checkbox">
<input checked="checked" class="boolean optional" id="order_over_phone" name="order[over_phone]" type="checkbox" value="1">
</label>
</div>
</div>
如您所见,一个输入标签被隐藏,值为 0,另一个未隐藏,值为 1。如果我提交表单,在 post 参数中我得到两个值:
order[over_phone]:0
order[over_phone]:1
我在与这个布尔字段相关的模型创建中有一些随机行为,所以我想知道它是否是由 simple_form 引起的。非布尔字段类型不会发生这种情况。
如果您遇到过类似的问题,请分享您的经验。
我正在使用 simple_form 2.1.0。