ActiveRecordでのバイナリの扱い方(というかActiveRecord以前・・)

以前ActiveRecordを使用してバイナリデータをDBから読み書きしようとしてうまくいかなかったと書いた。(http://d.hatena.ne.jp/koki-h/20060929/1159481100
そのときはDBからの読み出し方法に問題があると思っていたが、実はDBへの書き込みに問題があった。
以前のコード

bin = Binary.new()
bin.file_name = "samplebin.zip"
open("samplebin.zip"){|file|
  bin.bin = file.read
}
bin.save

書き直したコード

bin = Binary.new()
bin.file_name = "samplebin.zip"
open("samplebin.zip"){|file|
  file.binmode #<==これが抜けていた。
  bin.bin = file.read
}
bin.save

DBへの書き込みの前に、元ファイルからデータの読み出しをやっている。このときにbinmodeの設定が必要だった。
DBからの読み出しの時(ファイルへの書き込み)にはbinmodeを設定していたのだから、DBへの書き込み(ファイルからの読み出し)の時にも必要だということくらい気づけよなー>俺