3

在将 Ruby on Rails 与 mysql2 适配器一起使用时,我想在我的数据库中访问和写入几个 BIT 列。但是,当ActiveRecord尝试写入 BIT 列时,mysql 抱怨x'30'x'31'(即 '0' 和 '1')对于 BIT(1) 列来说太大了。

适配器 mysql2 在连接的查询函数中具有哈希选项 connection.query(str, :cast_booleans=>true),以便能够将FalseClassandTrueClass转换为b'0'andb'1'而不是x'30'and x'31'。但是,我从不.query直接访问,我将其留给ActiveRecord(否则,rails 有什么意义?)。

我如何告诉ActiveRecord使用:cast_booleans

4

1 回答 1

0

我深入研究了 Rails 源代码,发现:

https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapter/abstract_mysql_adapter.rb

也许你可以覆盖quoted_trueand quoted_false

于 2013-05-02T12:58:38.953 回答