Internationalization RefineryCMS:排序规则的非法混合

Internationalization RefineryCMS:排序规则的非法混合,internationalization,refinerycms,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 COU

我正在处理一个本应使用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')

你知道为什么会这样吗?在my database.yml中,我已将编码设置为utf8

很可能是您的数据库本身设置为latin1,或者slugs表设置为latin1,或者slugs表中的一列设置为latin1。。。你不喜欢MySQL吗

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

要检查数据库设置:
显示变量,如“char%”
显示诸如“collation%”之类的变量

检查表格设置:显示创建表格表格名称

检查各个列:在tablename中显示完整的列

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