DataMapperだとこんな感じや
たとえばchannelsってテーブルがあったとして、ChannelってModelを作った場合で考える
channels = Channel.all channels.each do |ch| ch.name end
みたいな感じのコードを書いたとしても実際に発行されるSQLは以下のようになる
kimoto ~/tmp[27601]% !ru ruby sample.rb (0.000365) SELECT `id`, `name` FROM `channels` ORDER BY `id`
こういう仕組みもないO/Rマッパーを使ってたら、どこまでもSQLを意識しないと駄目だし、O/Rマップじゃなくて単にハッシュで受け取ってるだけだよねって思いますね。それってSQL Wrapperやん。
以下これのsampleコード
追記:
あ、このサンプルだと遅延評価の例になってないし、どのO/Rマッパーでも一緒だった!
あとで書き直す