Tại sao simple_form tạo thẻ đầu vào hai lần cho các trường boolean (một ẩn và trường khác không)?Simple_form: tại sao hai thẻ đầu vào được tạo thay vì một?
Trong simple_form của tôi, tôi có điều này:
<%= form.input :over_phone, as: :boolean, input_html: {checked: true} %>
mà tạo ra này:
<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>
Như bạn có thể thấy, một thẻ đầu vào được ẩn với một giá trị từ 0 và khác được bỏ ẩn với giá trị 1. Nếu tôi gửi biểu mẫu, trong thông số bài đăng, tôi nhận được cả hai giá trị:
order[over_phone]:0
order[over_phone]:1
Tôi có một số hành vi ngẫu nhiên trong việc tạo mô hình liên kết với trường boolean này, vì vậy tôi tự hỏi liệu nó có phải do simple_form gây ra hay không. Điều này không xảy ra với các kiểu trường không boolean.
Nếu bạn gặp phải vấn đề tương tự, vui lòng chia sẻ kinh nghiệm của bạn.
Tôi đang sử dụng simple_form 2.1.0.
Cảm ơn rất nhiều! Điều này giải thích nó. Tôi chỉ tìm ra, vấn đề của tôi với trường "over_phone" ở một nơi khác. – Nurbo