0

i18n テクノロジを利用することになっている、refinerycms インスタンスに取り組んでいますが、ロシア語でページを保存すると、次のエラーが発生し続けます。

ActiveRecord::StatementInvalid in Admin::PagesController#update

Mysql2::Error: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=': SELECT COUNT(*) FROM `slugs` WHERE `slugs`.`name` = 'Ñтраница-не-найдена' AND `slugs`.`scope` IS NULL AND `slugs`.`locale` = 'ru' AND (`slugs`.sluggable_id = 2 AND `slugs`.sluggable_type = 'Page')

なぜこれが起こっているのかについてのアイデアはありますか?私のdatabase.ymlでは、エンコーディングをutf8に設定しました

4

1 に答える 1

0

データベース自体が latin1 に設定されているか、slugs テーブルが latin1 に設定されているか、slugs テーブルの列の 1 つが latin1 に設定されている可能性があります。

database.yml はアダプター専用で、データベースは変更されません。dbconsole に移動し、次のようにします。

データベース設定を確認するには:
SHOW VARIABLES LIKE 'char%';
'collat​​ion%' のような変数を表示します。

テーブル設定を確認するには: SHOW CREATE TABLE tablename;

個々の列を確認するには: SHOW FULL COLUMNS IN tablename;

間違ったエンコーディングでデータベースを作成した場合、これらすべてで latin1 をすべて変更する必要があります。

于 2012-05-29T16:15:09.850 に答える