読者です 読者をやめる 読者になる 読者になる

特定のテーブルで DataMapper を使ったら Ruby ごと死んだ

Sinatra + Passenger な環境で DataMapper を使っていたら、どうしても内容が取得できないテーブルが。
なんかエラーが出たりするならわかるんだけど、真っ白画面でなんのこっちゃ状態。
WEBrick を直接たたいて試してみたら、なんか segmentation fault で死んでる。おいおい。
ゲロった core を覗いてみたら、なんか eval らしきものが無限ループしてる…?
おかしなことになるテーブルはその一つだけで、なんでだろーなんでだろーと思いながら、とりあえずそのテーブルと全く同じ、テーブル名だけが違うものを作ってみた。
そしたらこいつも死んだ。


原因は key なんて名前のカラムがあったからっぽい…
この DB は他のところで使っているので、モデル定義から key をはずすことに。どうせ使わなかったので。
そしたら無事解決。


予約語っぽいカラム名はやめましょうという教訓。