3

mysql2 アダプターで Ruby on Rails を使用する場合、データベースにアクセスして書き込みたい BIT 列がいくつかあります。ただし、ActiveRecordBIT 列に書き込もうとすると、mysql はx'30'and x'31'(つまり、'0' と '1') が BIT(1) 列には大きすぎると文句を言います。

アダプタ mysql2 には、接続のクエリ関数 にハッシュ オプションがあり 、andではなくandにconnection.query(str, :cast_booleans=>true)キャストできます。ただし、直接アクセスすることはありません。それはおまかせします(そうでなければ、レールのポイントは何ですか?)。FalseClassTrueClassb'0'b'1'x'30'x'31'.queryActiveRecord

ActiveRecordを使用するように指示するにはどうすればよい:cast_booleansですか?

4

1 に答える 1

0

Railsのソースコードを掘り下げたところ、次のことがわかりました。

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

quoted_true多分あなたはオーバーライドできますquoted_falseか?

于 2013-05-02T12:58:38.953 に答える