QA@IT

Railsでupdate_attributesメソッドを使用するとEncoding::CompatibilityErrorがでます。

3548 PV

updateアクションの中でupdate_attributesメソッドを実行すると以下のエラーが出てしまいます。

Encoding::CompatibilityError (incompatible character encodings: UTF-8 and Windows-31J):

environment.rbのファイルの中身を見るとconfig.encoding = "utf-8"となっています。detabase.ymlも同様にutf8です。
また、アクション先でdebuggerを設置して各パラメータに対し.encodingメソッドを使用してもすべてUTF-8で返ってきます。

どなたか、原因の分かる方はいらっしゃいますでしょうか?

なお、Railsのバージョンは3.1.3
Rubyのバージョンは1.9.2p290
です。

回答

updateアクションを記述しているコントローラファイルの先頭に、下記のように# coding: utf-8というマジックコメントを記述してもエラー変わらないでしょうか?

# coding: utf-8
class ItemsController < ApplicationController
  
end

もしくは.force_encoding('UTF-8')メソッドで強制的にエンコードを指定してみるとかですかね。

参考:

編集 履歴 (0)
  • すみません、遅くなりましたがありがとうございました。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。