mysql - Rails 3.0.3 中的 ActiveRecord 将 MySQL 的第 8 个字段变成了 BigDecimal。如何解决?

标签 mysql ruby-on-rails activerecord

我有一个成员表,它有 9 个字段:id、email...等等。

member_type为第8个字段

第 8 个字段总是转换为十进制,无论它是什么名称或它是什么类型。

这是我做过的一些实验:

irb(main):010:0> Member.all()[0].attributes

=> {"created_date"=>nil, "email"=>"tanixxx@yahoo.com", "id"=>1, "is_admin"=>0, "
member_type"=>#<BigDecimal:4f87ce0,'0.0',4(8)>, "name"=>"tanin", "password"=>"3c
f622832f10a313cb74a59e6032f115", "profile_picture_path"=>"aaaaa", "status"=>"APP
ROVED"}

请注意:member_type,这是第 8 个字段。

现在如果我只查询一些字段,结果是正确的:

irb(main):007:0> Member.all(:select=>"member_type,email")[0].attributes

=> {"email"=>"tanixxx@yahoo.com", "member_type"=>"GENERAL"}

我想ActiveRecord一定有bug。


这里还有一些实验。我添加了“test_8th_field”作为第 8 个字段,我得到了这个:

irb(main):016:0> Member.all[0].attributes

=> {"created_date"=>nil, "email"=>"tanixxx@yahoo.com", "id"=>1, "is_admin"=>0, "
member_type"=>"GENERAL", "name"=>"tanin", "password"=>"3cf622832f10a313cb74a59e6
032f115", "profile_picture_path"=>"aaaaa", "status"=>"APPROVED", "test_8th_field
"=>#<BigDecimal:30c87f0,'0.0',4(8)>}

第 8 个字段是 BigDecimal(尽管它是 MySQL 中的文本字段)。但是这次 member_type 字段出奇地正确。

我不知道数字8有什么问题......

请帮帮我。


这是我的模式转储,包括 test_8th_field:

CREATE TABLE IF NOT EXISTS `members` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `profile_picture_path` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `status` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `is_admin` int(11) NOT NULL,
  `test_8th_field` text COLLATE utf8_unicode_ci NOT NULL,
  `member_type` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'GENERAL',
  `created_date` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;

最佳答案

我已经解决了。事实证明,MySql 二进制库与 MySql 数据库本身的版本不匹配。

关于mysql - Rails 3.0.3 中的 ActiveRecord 将 MySQL 的第 8 个字段变成了 BigDecimal。如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6646507/

相关文章:

php - 使用 SUM 构建包含两个表的查询

php - 计算特定行/偏移量的分页偏移量

mysql - SQL - 从没有列的计数总和中舍入小数

ruby-on-rails - 使用 RSpec 测试哈希数组的最佳方法是什么?

postgresql - Rails 4,迁移以将列的数据类型从 daterange 更改为 tsrange,导致 PG::DatatypeMismatch:错误:

php - 保存后 Laravel 模型 ID 为空(ID 递增)

ruby-on-rails - Rails 3.2 按日期友好的 url 路由

javascript - Rails 5、Turbolinks 5 JQuery 在页面重新加载时停止工作

ruby-on-rails - 仅查询嵌套关联记录

ruby-on-rails - Rails : validate presence of foo unless bar == 'baz'