【发布时间】:2019-07-18 17:55:14
【问题描述】:
我正在疯狂地处理 Rails 中的复选框。
我在 Rails 中有 Yes,No check_box_tag 无法正常工作,因为数据未正确保存。
例如,当我取消选中一个框时,它应该在数据库中保存 null/empty/nil。
<%= form_for(@user, local: true, html: {multipart: true}) do |form| %>
<div class="input-field col s12 m12">
<%= form.label :has_previously_used_hermes_cover, t('has_previously_used_hermes_cover') %>
<p>
<label>
<%= check_box_tag "user[credit_report_available]", 1, @user.credit_report_available == 1 ? true : nil, id: "user_credit_report_available" %>
<span class="btn <%= 'active' if (@user.credit_report_available) %>"> Yes </span>
</label>
<label>
<%= check_box_tag "user[credit_report_available]", 0, @user.credit_report_available == 0 ? false : nil, id: "user_credit_report_available" %>
<span class="btn <%= 'active' if (@user.credit_report_available == 0) %>"> No </span>
</label>
</p>
</div>
<div class="col s12 m4">
<%= form.submit class: 'btn', value: 'Send Application' %>
</div>
<% end %>
def user_params
params
.require(:user)
.permit(:credit_report_available)
end
Parameters: {"utf8"=>"✓", "authenticity_token"=>"EN4Zjg4VJsdE3r6hYmvGiNV6yeLVy0ehKASDO1T3eb+er8TfdG+I0jRCQ/XuGGs8YEJLaUcfRkIV8pwR+N4JpNFg==", "user"=>{"credit_report_available"=>""}, "commit"=>"Send Application", "locale"=>"en"}
【问题讨论】:
-
那么您是如何发送该发布/补丁请求的,您使用的是 AJAX 吗?您可以发布处理此事件的 javascript 代码吗?
-
它只是一个通过 Post 发送的 Rails 表单
-
你能把整个表格贴出来吗?您是否还有提交表单时发送的参数示例?
-
@RockwellRice 我已添加到代码中。
-
提交时发送的参数怎么样?