自宅の日記用Railsアプリを 1.2.6 -> 2.3.4 にあげておいたのですが、画像がアップロードできないとカミさんから不具合報告が上がっていました。

ファイルアップロード & 画像データ管理に acts_as_attachment を使っていたのですが、このご時世 attachment_fu らしいので、プラグインを入れ替えました。DBスキーマはそのまま使えるので楽勝。

と余裕かましていたら、これまでの画像が全て見れなくなりました。public/photos/1234 に画像ファイルが置いてあるのに public/photos/0000/1234 を見にいっています。

仕方がないので attachment_fu のソースコードを見てみたら、lib/technoweenie/attachment_fu/backends/file_system_backend.rb で、

    def partitioned_path(*args)
      ("%08d" % attachment_path_id).scan(/..../) + args
    end

とかやっていました。

ext3とかだとファイル名探索が線形探索だから、あまり一ディレクトリに放り込まないようにしたのかなぁ、と。