2010/10/20

DataMapper.finalize

Sinatraと組み合わせて使うために、OR Mapperの1つであるDataMapperの勉強をしている。

まずはじめ、DataMapperを単体で使うテストコードを書いてみようと思ったのだが、どうにも正しく動作せずにはまった。原因は、DataMapper.finalizeの呼び出しを忘れていたためだった。

公式ページのGetting started with DataMapperには、belongs_toを使ってモデルが宣言されている場合、明示的にDataMapper.finalizeを呼んであげないと初期化できない、と書かれている。

はじめにちゃんとドキュメント読まないとダメだな。

2010/10/17

Sinatra + DataMapper: undefined method `auto_migrate!'

Sinatraを使ってみようと以下の記事の中で紹介されていたコードを動かしてみた。
すると、

$ ruby migration.rb 
migration.rb:7: undefined method `auto_migrate!' for DataMapper:Module (NoMethodError)
とエラーになってしまった。

調べてみると、migrations.rbに以下の1行を追加すればよいことが分かった。

require 'dm-migrations'

これで動作するようになった。