Railsに関するハマったこと

最近やったハマリ項目

script/consoleでreadlineのloadに失敗する

rpm等でインストールした場合は知らないが、rubyを./configure make make install
でしれっと最新版をいれた場合、./configureに「--with-readline-dir=/usr/local」または「--with-install-readline」をつけなければscript/consoleすらできない。

yum install readline-devel

をした後にRubyに以下のように、./configureにパラメータを渡す。

cd (rubyのソースディレクトリ)
./configure --with-install-readline
make
make install

でOK。ちなみにrubyのソースインストールに関して、make uninstallはない。次回からやるときはcheckinstall使うことにします。

参考:http://d.hatena.ne.jp/kano-e/20070530/1180540607

RMagickの入ったWindowsRails関係でGem update

Windows版のRMagickはバンドルされているバージョンのImageMagickとしか正常に動かない。
gem updateするとRMagickがupdateされないように気をつける必要あり。

MySQLのBLOBの最大容量は64KB

さっき、DBに画像を保存する部分を作っていたら、写真は正常にアップロードされるし、DBにもちゃんとBinaryのデータが格納されているのに、写真を表示したりすると、下半分グレーになりました。
RailsによるアジャイルWebアプリケーション開発」でMigrationとファイルのアップロード関連をちょうど読んだばかりだったのですぐ気がついたけど、MySQLのBLOBの最大容量は64KBでした。
Migrationで、

t.column :data, :binary

とかしたカラムに写真データなどを入れると、64KB以上の写真の場合、後ろの方のデータがちぎれたりしました。

t.column :data, :binary, :limit => 1.megabyte

と、最大値を指定しないとダメです。直接DBのスキーマを編集したりしてる場合はMEDIUMBLOBとか使う必要がある。
参考:

RailsによるアジャイルWebアプリケーション開発 第2版

RailsによるアジャイルWebアプリケーション開発 第2版