【Rails3】PaperClip & Amazon S3で、日本語ファイル名が使えない問題を解決する

PaperClipはRailsでアップロードするための便利ライブラリです。
(func09さんの言葉を借りると「便利すぎて鼻血がでそう」)
参考URL:
http://www.func09.com/wordpress/archives/674

保存先にAmazonS3も使えて大変便利なのですが、
日本語ファイルをアップロードしようとするとエラーとなってしまいます(Ver.3.0.2で確認)。

デバッグしたところ次のモンキーパッチをすれば動くようですので、公開してみます。
自分の開発しているアプリに、以下のコードを書けばおkです(`・ω・´)シャキーン

RAILS_ROOT/config/boot.rb

module Paperclip
  class UploadedFileAdapter
    def inspect
      '='
    end
  end
end

(キリッ

PaperclipがAmazonS3にファイルをアップロードする際、aws-sdkというライブラリからUploadedFileAdapterのインスタンスのinspectメソッドがコールされるのですが、この際に日本語が含まれていると例外が発生するようです。なので、とりいそぎinspectが日本語を含まない '=' を返却することで、この問題を回避しました。


使ってるライブラリに手を入れなくても修正できて、
Rubyって本当に素晴らしいですねえ(何