为什么simple_form为布尔字段生成两次输入标签(一个隐藏,另一个不是)?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. 如果我提交表单,在发布参数中我会得到两个值:
order[over_phone]:0
order[over_phone]:1
我在与此布尔字段关联的模型创建中存在一些随机行为,所以我不知道它是否是由simple_form引起的。非布尔型字段类型不会发生这种情况。
如果您遇到类似问题,请分享您的经验。
我正在使用simple_form 2.1.0。
非常感谢!这解释了它。我只是想通了,我的问题与“over_phone”字段是别的地方。 – Nurbo