環境によってhas_oneの関連付けを設定する:Rubyの1.9.2、Railsの3.0.1のRails:例外 "UTF-8に無効なバイトシーケンス" UUID
二つのMySQLテーブル:1項目、2。vote_counts(すべての行はアイテムに投票したユーザーの数を表します)
テーブルが大きいので、それらを破る必要があるため、私はUUIDを使用しています。 uuidカラムは両方のテーブルに定義されています。uuid
varbinary(16)NOT NULL。 has_one:私はアイテムのモデルでhas_oneの関連規定され
vote_countを、:FOREIGN_KEY => "UUID"、:私はitem.vote_countを呼び出すとPRIMARY_KEY =>
を "UUID"、私は上の次の例外を取得していますいくつかのUUID値: "ArgumentError:UTF-8で無効なバイトシーケンス"。
もちろん、生のUUIDは単なるバイト列(エンコーディング:ASCII-8BIT)ですが、ActiveRecordがSQLクエリを作成するとき、それをUTF-8文字列として解釈しようとします。
バイトシーケンスをMySQLに渡すだけでどうすればいいですか?
MySQLのドライバ(およびどのバージョン)を使用していますか?問題の列に対してMySQLが持つエンコードは何ですか? –
ドライバ:mysql2 ver 0.2.6 –
テーブルにはutf8エンコーディングがありますが、varbinaryカラムについては重要ですか? –