RefineryCMS:非法混合排序

时间:2011-08-17 19:50:20

标签: internationalization refinerycms

我正在研究一个应该使用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

1 个答案:

答案 0 :(得分:0)

您的数据库本身可能设置为latin1,或者slugs表设置为latin1,或者slugs表中的其中一列设置为latin1 ......难道你不喜欢MySQL吗?

database.yml仅适用于适配器,它不会更改数据库。 进入dbconsole,然后:

检查数据库设置:
显示变量如'char%';
SHOW VARIABLES LIKE'collat​​ion%';

检查表设置:SHOW CREATE TABLE tablename;

检查各列:在表名中显示全列;

如果您使用错误的编码创建了数据库,则必须在所有这些中更改latin1的每一次出现。