Thêm đối chiếu:utf8_general_ci vào tệp database.yml của bạn giống như bạn đã làm sẽ thực hiện thủ thuật. Hãy thử tạo lại cơ sở dữ liệu thử nghiệm bằng cách sử dụng "rake RAILS_ENV =test db:migrate:reset db:fixtures load" - cảnh báo điều này sẽ xóa tất cả dữ liệu bạn có ở đó ngoài đồ đạc.
Điều đó đã làm việc cho tôi. Để xác minh xem đối chiếu trên cơ sở dữ liệu, bảng và cột, bạn có thể thực hiện như sau:
-- Database Collations:
SELECT schema_name,default_character_set_name,default_collation_name
FROM information_schema.SCHEMATA
WHERE schema_name not IN ('mysql');
-- Table Collations:
SELECT T.table_schema, T.table_name, T.TABLE_COLLATION, CCSA.CHARACTER_SET_NAME
FROM information_schema.`TABLES` T,
information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
AND T.table_schema not IN ('mysql');
-- Column Collations:
SELECT table_schema, table_name, column_name, collation_name, character_set_name
FROM information_schema.`COLUMNS` C
WHERE C.table_schema not IN ('mysql')
ORDER BY 1,2,4;
Mọi thứ trong cơ sở dữ liệu thử nghiệm của bạn bây giờ phải có đối chiếu được chỉ định trong database.yml.