【发布时间】:2021-01-20 23:24:52
【问题描述】:
我正在使用 Ruby Rails 创建一个表单。它有一个复选框,选中时表示该条目应该被隐藏(true 或 bit 1. vs false/bit 0),但是,当我提交复选框时,我收到一个错误:
Mysql2::Error: Data too long for column 'hidden_status' at row 1: INSERT INTO `entries` ( 'hidden_status') VALUES (x'30')
条目和hidden_status 的架构是:
t.binary "hidden_status", limit: 1
复选框是:
<%= newEntry.check_box(:hidden_status,{checked:true},1,0)%>
我怀疑这与数据类型为“位”有关?但是我不确定,因为我是 Ruby Rails 的新手,从我查找的内容来看,BIT 是在 SQL 中执行布尔值/真值与假值的唯一方法。看起来该值以x'30' 的形式出现。不确定那是什么意思。有没有办法让复选框捕获 1 或 0?
另外,错误中的参数显示无论复选框是否被选中,复选框的值总是返回0。不确定这是单独的问题还是与错误有关。
【问题讨论】:
-
显示你的控制器端代码
标签: sql ruby-on-rails checkbox bit