2016-04-08 4 views
1

Моя вставка модель в SHIFT_JIS (японский),Как сделать кодировку не-utf8 для ActiveRecord?

Файл имеет #encoding: shift_jis в начале, то я,

User.create({ user_name: "管理者" }) 

Персонаж SHIFT_JIS закодирован!

Моя база данных - оракул (с использованием oracle_enhanced ruby ​​gems), который также закодирован shift_jis.

Моей ОС является Windows-10, но с японским языком в качестве основного языка (но я считаю, что кодировка по умолчанию - это unicode?).

Однако, во время вставки, есть ошибка:

Encoding::UndefinedConversionError: U+7BA1 to WINDOWS-1252 in conversion from Shift_JIS to UTF-8 to WINDOWS-1252 

Так вот вопрос:

  1. Я, наверное, можно понять, что ActiveRecord конвертирует shift_jis в UTF-8, но как чтобы он вставлялся в базу данных как shift_jis?

  2. Почему происходит переход на WINDOWS-1252?

  3. Есть ли решение для этого? Я попытался использовать кодировку utf-8 для ActiveRecord (база данных - shift_jis, которая строго не менялась), и я добавил encoding: sjis в database.yml, однако ActiveRecord по-прежнему вставляет данные ase utf-8 без преобразования. Таким образом, база данных возвращает ошибку (символ слишком длинный, понятно, что utf-8 имеет более длинные байты, чем shift_jis-кодировка).

  4. Честно говоря, я не понимаю, почему ActiveRecord начал использовать utf-8, но отказался от всех поддерживаемых для кодирования не-utf8. Миграция штрих-кода базы данных слишком полезна для менеджеров, и они не могут позволить себе каких-либо таких изменений, но для программистов это просто обновление от rails legacy (где все работает) до последней версии рельсов (там, где такая простая вещь ломается, и решение трудно найти) ,


В соответствии с просьбой (я только изменил мою кодировку UTF-8, но ошибка такая же, там просто не Shift-JIS в UTF-8 преобразования, но все-таки ошибка для UTF-8 в Windows- 1252):

Информация о пути удалена из-за ограничения 300 000 символов.

** Invoke db:migrate (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Invoke db:load_config (first_time) 
** Execute db:load_config 
** Execute db:migrate 
rake aborted! 
StandardError: An error has occurred, all later migrations canceled: 

Encoding::UndefinedConversionError: U+7BA1 to WINDOWS-1252 in conversion from UTF-8 to WINDOWS-1252: INSERT INTO "USERS" ("ID", "LOGIN", "HASHED_PASSWORD", "SALT", "USER_NAME", "START_DATE", "END_DATE", "MAIL", "MAIL_NOTIFICATION", "CREATED_AT", "UPDATED_AT") VALUES (:a1, :a2, :a3, :a4, :a5, :a6, :a7, :a8, :a9, :a10, :a11) 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/bindtype.rb:121:in `encode' 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/bindtype.rb:121:in `create' 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/cursor.rb:504:in `make_bind_object' 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/cursor.rb:99:in `bind_param' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb:143:in `bind_param' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:139:in `block (2 levels) in exec_insert' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:132:in `each' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:132:in `each_with_index' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:132:in `block in exec_insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `log' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:1353:in `log' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:121:in `exec_insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:108:in `insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/query_cache.rb:14:in `insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/relation.rb:64:in `insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/persistence.rb:524:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/counter_cache.rb:139:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/locking/optimistic.rb:75:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/attribute_methods/dirty.rb:133:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:306:in `block in _create_record' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:88:in `__run_callbacks__' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:778:in `_run_create_callbacks' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:306:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/timestamp.rb:57:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/persistence.rb:504:in `create_or_update' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:302:in `block in create_or_update' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:88:in `__run_callbacks__' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:778:in `_run_save_callbacks' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:302:in `create_or_update' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/persistence.rb:142:in `save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/validations.rb:43:in `save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/attribute_methods/dirty.rb:29:in `save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:291:in `block in save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:351:in `block in with_transaction_returning_status' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:220:in `transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:348:in `with_transaction_returning_status' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:291:in `save!' 
/db/migrate/20081113061046_load_users_data.rb:43:in `up' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:571:in `up' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:611:in `exec_migration' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:592:in `block (2 levels) in migrate' 
/2.2.0/benchmark.rb:288:in `measure' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:591:in `block in migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in `with_connection' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:590:in `migrate' 
C:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:998:in `block in execute_migration_in_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:1046:in `ddl_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:997:in `execute_migration_in_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:959:in `block in migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:955:in `each' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:955:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:823:in `up' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:801:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/tasks/database_tasks.rb:137:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:248:in `call' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:248:in `block in execute' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:243:in `each' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:243:in `execute' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:187:in `block in invoke_with_call_chain' 
/2.2.0/monitor.rb:211:in `mon_synchronize' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:180:in `invoke_with_call_chain' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:173:in `invoke' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:150:in `invoke_task' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:106:in `block (2 levels) in top_level' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:106:in `each' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:106:in `block in top_level' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:115:in `run_with_threads' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:100:in `top_level' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:78:in `block in run' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:176:in `standard_exception_handling' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:75:in `run' 
bin/rake:4:in `<main>' 
ActiveRecord::StatementInvalid: Encoding::UndefinedConversionError: U+7BA1 to WINDOWS-1252 in conversion from UTF-8 to WINDOWS-1252: INSERT INTO "USERS" ("ID", "LOGIN", "HASHED_PASSWORD", "SALT", "USER_NAME", "START_DATE", "END_DATE", "MAIL", "MAIL_NOTIFICATION", "CREATED_AT", "UPDATED_AT") VALUES (:a1, :a2, :a3, :a4, :a5, :a6, :a7, :a8, :a9, :a10, :a11) 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/bindtype.rb:121:in `encode' 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/bindtype.rb:121:in `create' 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/cursor.rb:504:in `make_bind_object' 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/cursor.rb:99:in `bind_param' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb:143:in `bind_param' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:139:in `block (2 levels) in exec_insert' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:132:in `each' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:132:in `each_with_index' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:132:in `block in exec_insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `log' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:1353:in `log' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:121:in `exec_insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:108:in `insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/query_cache.rb:14:in `insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/relation.rb:64:in `insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/persistence.rb:524:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/counter_cache.rb:139:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/locking/optimistic.rb:75:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/attribute_methods/dirty.rb:133:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:306:in `block in _create_record' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:88:in `__run_callbacks__' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:778:in `_run_create_callbacks' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:306:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/timestamp.rb:57:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/persistence.rb:504:in `create_or_update' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:302:in `block in create_or_update' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:88:in `__run_callbacks__' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:778:in `_run_save_callbacks' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:302:in `create_or_update' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/persistence.rb:142:in `save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/validations.rb:43:in `save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/attribute_methods/dirty.rb:29:in `save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:291:in `block in save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:351:in `block in with_transaction_returning_status' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:220:in `transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:348:in `with_transaction_returning_status' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:291:in `save!' 
/db/migrate/20081113061046_load_users_data.rb:43:in `up' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:571:in `up' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:611:in `exec_migration' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:592:in `block (2 levels) in migrate' 
/2.2.0/benchmark.rb:288:in `measure' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:591:in `block in migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in `with_connection' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:590:in `migrate' 
C:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:998:in `block in execute_migration_in_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:1046:in `ddl_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:997:in `execute_migration_in_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:959:in `block in migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:955:in `each' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:955:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:823:in `up' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:801:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/tasks/database_tasks.rb:137:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:248:in `call' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:248:in `block in execute' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:243:in `each' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:243:in `execute' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:187:in `block in invoke_with_call_chain' 
/2.2.0/monitor.rb:211:in `mon_synchronize' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:180:in `invoke_with_call_chain' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:173:in `invoke' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:150:in `invoke_task' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:106:in `block (2 levels) in top_level' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:106:in `each' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:106:in `block in top_level' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:115:in `run_with_threads' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:100:in `top_level' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:78:in `block in run' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:176:in `standard_exception_handling' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:75:in `run' 
bin/rake:4:in `<main>' 
Encoding::UndefinedConversionError: U+7BA1 to WINDOWS-1252 in conversion from UTF-8 to WINDOWS-1252 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/bindtype.rb:121:in `encode' 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/bindtype.rb:121:in `create' 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/cursor.rb:504:in `make_bind_object' 
/gems/2.2.0/gems/ruby-oci8-2.2.1-x86-mingw32/lib/oci8/cursor.rb:99:in `bind_param' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb:143:in `bind_param' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:139:in `block (2 levels) in exec_insert' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:132:in `each' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:132:in `each_with_index' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:132:in `block in exec_insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `log' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:1353:in `log' 
/gems/2.2.0/gems/activerecord-oracle_enhanced-adapter-1.6.7/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:121:in `exec_insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:108:in `insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/query_cache.rb:14:in `insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/relation.rb:64:in `insert' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/persistence.rb:524:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/counter_cache.rb:139:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/locking/optimistic.rb:75:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/attribute_methods/dirty.rb:133:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:306:in `block in _create_record' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:88:in `__run_callbacks__' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:778:in `_run_create_callbacks' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:306:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/timestamp.rb:57:in `_create_record' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/persistence.rb:504:in `create_or_update' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:302:in `block in create_or_update' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:88:in `__run_callbacks__' 
/gems/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:778:in `_run_save_callbacks' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/callbacks.rb:302:in `create_or_update' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/persistence.rb:142:in `save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/validations.rb:43:in `save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/attribute_methods/dirty.rb:29:in `save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:291:in `block in save!' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:351:in `block in with_transaction_returning_status' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:220:in `transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:348:in `with_transaction_returning_status' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/transactions.rb:291:in `save!' 
/db/migrate/20081113061046_load_users_data.rb:43:in `up' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:571:in `up' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:611:in `exec_migration' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:592:in `block (2 levels) in migrate' 
/2.2.0/benchmark.rb:288:in `measure' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:591:in `block in migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in `with_connection' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:590:in `migrate' 
C:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:998:in `block in execute_migration_in_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:1046:in `ddl_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:997:in `execute_migration_in_transaction' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:959:in `block in migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:955:in `each' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:955:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:823:in `up' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/migration.rb:801:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/tasks/database_tasks.rb:137:in `migrate' 
/gems/2.2.0/gems/activerecord-4.2.6/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:248:in `call' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:248:in `block in execute' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:243:in `each' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:243:in `execute' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:187:in `block in invoke_with_call_chain' 
/2.2.0/monitor.rb:211:in `mon_synchronize' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:180:in `invoke_with_call_chain' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/task.rb:173:in `invoke' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:150:in `invoke_task' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:106:in `block (2 levels) in top_level' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:106:in `each' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:106:in `block in top_level' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:115:in `run_with_threads' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:100:in `top_level' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:78:in `block in run' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:176:in `standard_exception_handling' 
/gems/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:75:in `run' 
bin/rake:4:in `<main>' 
Tasks: TOP => db:migrate 
+0

Можете ли вы добавить обратную линию? – earksiinni

+0

@earksiinni добавлено – user534498

+0

Что относительно базы данных.yml? Кроме того, вы написали: «В начале файла« #encoding: shift_jis' », но в каком файле вы ссылаетесь? И почему есть метка хэша перед линией? Хештайг делает это в комментарии, поэтому он не будет выполнен. – earksiinni

ответ

0

Мое решение, которое работает в:

в boot.rb, добавьте следующую строку кода:

ENV [ 'NLS_LANG'] || = '' AMERICAN_AMERICA.JA16SJIS

Это скажет activerecord или oracle_enhanced gem, чтобы сохранить в базе данных как кодировку SJIS.

Однако, я должен сказать, что ActiveRecord :: Fixtures по-прежнему не работает. Светильники по-прежнему пытаются вставить в базу данных как utf-8.

Посмотрите на мой другой вопрос, который еще не имеет ответа.

Fixtures: How to load utf-8 characters and convert to non utf-8 and save into database?


Итоговые редактирования: светильники также решены.

Смежные вопросы