私はPostGres 9.5でRails 4.2.7を使用しています。私のモデルが有効かどうかをチェックすると、私は奇妙なエラーが発生しています。私のような私のPostgresのDBに定義された名前のフィールドを、...持って"valid?"チェック時に "処理中にエラーが発生しました:(ArgumentError)UTF-8の無効なバイトシーケンス"メソッド
しかしname | character varying |
、私は私のモデルにこの値を保存するときに(いくつかのものはカットし、私の編集者から権利貼り付けるないかもしれません...)
Beth Ordu?±a
そして私は、次の検証ルールをモデルに
if !insert.valid?
を実行
class MyObjectTime < ActiveRecord::Base
belongs_to :my_object
has_one :linked_my_object, class_name: 'MyObject'
belongs_to :state
belongs_to :country
validates :time_in_ms, numericality: { greater_than: 0 }
validates :age, numericality: { greater_than: 0 }, :allow_blank => validates :name, presence: true, unless: :first_name_last_name_empty_and_user_id_is_not?
attr_accessor :name_city, :time_str, :hometown, :division, :age_group_rank_str, :gender_rank_str, :overall_rank_str
私は、文字列の内容を変更せずに、このエラーを回避するにはどうすればよい
Error during processing: (ArgumentError) invalid byte sequence in UTF-8
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/object/blank.rb:117:in `==='
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/object/blank.rb:117:in `blank?'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.7.1/lib/active_model/validator.rb:150:in `block in validate'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.7.1/lib/active_model/validator.rb:148:in `each'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.7.1/lib/active_model/validator.rb:148:in `validate'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.7.1/lib/active_record/validations/presence.rb:5:in `validate'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `public_send'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `block in make_lambda'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:182:in `block in conditional'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:504:in `block in call'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:504:in `each'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:504:in `call'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:92:in `__run_callbacks__'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:778:in `_run_validate_callbacks'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.7.1/lib/active_model/validations.rb:399:in `run_validations!'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.7.1/lib/active_model/validations/callbacks.rb:113:in `block in run_validations!'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:88:in `__run_callbacks__'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:778:in `_run_validation_callbacks'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.7.1/lib/active_model/validations/callbacks.rb:113:in `run_validations!'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.7.1/lib/active_model/validations.rb:338:in `valid?'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.7.1/lib/active_record/validations.rb:58:in `valid?'
/Users/davea/Documents/workspace/myproject/app/services/abstract_import_service.rb:154:in `block (2 levels) in save_my_object_time_results'
/Users/davea/Documents/workspace/myproject/app/services/abstract_import_service.rb:152:in `each'
/Users/davea/Documents/workspace/myproject/app/services/abstract_import_service.rb:152:in `block in save_my_object_time_results'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.7.1/lib/active_record/transactions.rb:220:in `transaction'
/Users/davea/Documents/workspace/myproject/app/services/abstract_import_service.rb:149:in `save_my_object_time_results'
/Users/davea/Documents/workspace/myproject/app/services/abstract_import_service.rb:92:in `process_my_object_data'
/Users/davea/Documents/workspace/myproject/app/services/active_com_my_object_finder_service.rb:119:in `block in process_my_object_link'
/Users/davea/Documents/workspace/myproject/app/services/active_com_my_object_finder_service.rb:109:in `each'
/Users/davea/Documents/workspace/myproject/app/services/active_com_my_object_finder_service.rb:109:in `process_my_object_link'
/Users/davea/Documents/workspace/myproject/app/services/abstract_my_object_finder_service.rb:29:in `block in process_data'
/Users/davea/Documents/workspace/myproject/app/services/abstract_my_object_finder_service.rb:28:in `each'
/Users/davea/Documents/workspace/myproject/app/services/abstract_my_object_finder_service.rb:28:in `process_data'
/Users/davea/Documents/workspace/myproject/app/services/run_crawlers_service.rb:18:in `block in run_all_crawlers'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.7.1/lib/active_record/relation/delegation.rb:46:in `each'
/Users/davea/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.7.1/lib/active_record/relation/delegation.rb:46:in `each'
/Users/davea/Documents/workspace/myproject/app/services/run_crawlers_service.rb:5:in `run_all_crawlers'
...以下のエラーを取得しますか? PostGresがこのデータを保存することができれば、それが私が気にしている唯一のことです。私はそれに書き込むときに、どのようなエンコーディングのタイプが "name"の値になるかを事前に知っていません。必要に応じて、PostGres列のデータ型を変更できます。