私のアプリをRails 2.3.8/Ruby 1.8.7から2.3.14/Ruby 1.9.2に移行しました。基本的に動作します。私は持っておくの問題は、時折HAMLテンプレートで、私は次のエラーを取得しますということです。Rails 2.3とRuby 1.9のバイトシーケンスutf-8が無効です
これは、符号化問題であり、私は(Iconv.conv
を使用して)それに対処する方法についていくつかの提案を見てきましたしかし、私が試したことはうまくいかないようでした。アプリケーションレベルでこれを解決するにはどうすればよいですか(すべてのテンプレートにパッチを適用する必要はありません)ありがとう。
EDIT:いくつかのスタックトレース
ActionView::TemplateError (invalid byte sequence in UTF-8) on line #28 of app/views/users/_user.haml:
27: - if user.valid?
28: - image_onclick = remote_function(:url => { :action => :toggle_image, :id => user.id })
vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb:68:in `=~'
vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb:68:in `!~'
vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb:68:in `blank?'
vendor/rails/activerecord/lib/active_record/validations.rb:478:in `block (2 levels) in validates_each'
vendor/rails/activerecord/lib/active_record/validations.rb:476:in `each'
vendor/rails/activerecord/lib/active_record/validations.rb:476:in `block in validates_each'
... etc
データベーステーブルCHARSET
はUTF-8
でエンコードされています。古いruby-mysql
宝石を - 私はこれは私が使用してきたのMySQLアダプタの問題であるように思わenvironment.rb
詳細をお知らせください。たとえば、テンプレートのエンコーディングは何ですか?より長いスタックトレースを表示できますか? – gioele
@gioele申し訳ありませんが、詳細を追加しました。ありがとう。 – sa125