【问题标题】:Yes No check_box_tag in Rails not working correctly是 否 Rails 中的 check_box_tag 无法正常工作
【发布时间】: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 我已添加到代码中。
  • 提交时发送的参数怎么样?

标签: ruby-on-rails checkbox


【解决方案1】:

你不会漏掉一个冒号吗?

.permit(:credit_report_available)

【讨论】:

  • 抱歉,这只是我在 stackoverflow 中的复制/粘贴错误。
  • 刚刚复制了你的代码,它对我有用。当然,复选框不会同步,但参数的值会发送到控制器。您的观点/部分是否还有其他内容?请显示完整的操作日志(新建/创建或编辑/更新)。
  • 问题是当我取消选中然后再次取消选中复选框时,错误的值保存在数据库中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-03
  • 1970-01-01
  • 2017-01-24
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多