注意: このページは最後に更新されてから 1422 日が経過している記事です。 文章が腐敗している可能性があります。その点を考慮した上で確認ください。

DataMapper

提供: kimoto's wiki

基本

require 'dm_core'

すると関連モジュールも自分でrequireしないといけなかったりする。 なので、

require 'data_mapper'

とするのが楽で良い

接続先DBを分ける

DataMapper.setup(:master, database_options)
DataMapper.setup(:slave, database_options)

みたいな感じにしておいて

DataMapper.repository(:master) do
  ## anything
end
 
DataMapper.repository(:slave) do
  ## anything
end

とすれば良い。

トランザクションに失敗したら例外を投げるようにする

  • なんでこれデフォルトで false なのか全く意味がわからない。
  • これを有効化しておかないと、Model#save したときに、エラーがあってもエラーを知ることが出来ない。
    • 一応戻り値はfalseで返却されては居るんだけど、普通のオブジェクト指向設計では例外がデフォルトだろうと思ってしまう。
DataMapper::Model.raise_on_save_failure = true