現在もっぱら、Windows環境で勉強しております。
なお、今の開発環境は one-click-ruby の 1.8.6です。
今回 attachment_fu プラグインをWindowsにインストールした場合の事を書いておきたいと思います。
【attachment_fu プラグインインストール】
(1)前もってwindowsに以下をインストール
TortoiseGit-0.7.2.0-32bit.msi(日本語化:tortoisegit_0.7.2.0_lang_jp.zip)
Git-1.6.3.2-preview20090608.exe
RMagick-2.10.0-ImageMagick-6.5.3-10-Q8.zip
※RMagickは、解凍して、以下の通りインストール
(A)ImageMagick-6.5.3-10-Q8-windows-dll.exeの実行
(B)gem install rmagick-2.10.0-x86-mswin32.gem --local でインストール
(2)その後、以下のコマンドを実行してインストール
ruby script/plugin install git://github.com/technoweenie/attachment_fu.git
これで、インストールは完了
【動作させるとなぜかsizeが正しく取得できない】
動かして判明した事なのですが、なぜかたまに、
Size is not included in the list というエラーが発生するのです。
ファイルサイズが正しく取得できたり、できなかったりの原因が
なぜなのか、わかりませんでした。
has_attachmentに :min_size => 0.kilobytesを付けたとしても、
:max_sizeの判定がおそらくうまくいかない事になると思い、
何が原因かを約3日ほど、悩んでおりましたが、
最終的にネットを調べてみると、ありました。。
これ!。
Fixing "Size is not included in the list" error message
----------------------------
# Returns the size of the temporary file. As a side effect, the IO
# buffer is flushed before determining the size.
def size
if @tmpfile
#-------------------------------------
@tmpfile.fsync # これを追加
#-------------------------------------
@tmpfile.flush
@tmpfile.stat.size
else
0
end
end
----------------------------
Ruby\lib\ruby\1.8\tempfile.rb ファイル内の size処理の所に fsyncを挿入する事で正しくサイズが取得できるようになりました。これでサイズのチェックはOKとなりました。
(この修正は、windowsの環境のみ)
コメントを残す