我查询数据表单数据库,我得到8位无符号int,但我不能使用它,因为ruby会将其更改为boolean。
我可以将8位无符号整数转换为整数或字符串吗?
谢谢
答案 0 :(得分:0)
这发生在ActiveRecord和MySQL上,它将tinyint(1)
(一个8位整数)视为一个布尔值,因为MySQL在5.0之前没有任何布尔类型(它现在有BIT)。您可以完全禁用此行为,但我不知道每个字段或每个模型禁用它的方法,因此如果禁用它,则会丢失其他字段上的“布尔”行为。幸运的是,这可能不是什么大问题,因为在大多数情况下0仍然是假的,其他任何东西仍然是真的。
您可以将其添加到config/application.rb
:
ActiveRecord::ConnectionAdapters::Mysql2Adapter.emulate_booleans = false