2012-01-19 51 views
1

我查询数据表单数据库,我得到8位无符号整型,但我不能使用它,因为红宝石会将其更改为布尔值。如何将8位无符号整数或红宝石字符串转换为整数或字符串

可以将8位无符号整数转换为整数或字符串吗?

谢谢

+0

你能发布'puts yourint.inspect的结果吗?把yourint.class'? –

+0

我们需要看到一些代码显示你如何访问数据库。我建议使用Sequel ORM,但有很多其他方式可以访问数据库,并且我没有看到任何返回的值,如果驱动程序支持它,它就不能立即使用。 –

回答

0

这发生用ActiveRecord和MySQL,它参考一个tinyint(1)(8位整数)为AA布尔值,因为MySQL没有任何布尔类型之前5.0(它有BIT现在)。您可以完全禁用此行为,但我不知道如何禁用每个字段或每个模型的方法,因此如果禁用了其他字段,则会失去“布尔”行为。幸运的是,这可能不是什么大不了的事情,因为在大多数情况下,0仍然是错误的,其他任何事情都将是真实的。

你可以把这个放入config/application.rb禁用它:

ActiveRecord::ConnectionAdapters::Mysql2Adapter.emulate_booleans = false 

the ActiveRecord API docs