DataMapperパターンのRuby実装。RDB、KVS、NoSQL系DBをサポートしてて、1.0.0なので結構枯れてる。

調べる必要があったヤツだけをメモ。

スラッグ型(URLの中で使える文字列)

String型のサブクラスだから安心。

require 'dm-types'

Class Post
  include DataMapper::Resource

  property :slug, Slug
end

デフォルトスコープ

Class Post
  include DataMapper::Resource

  property :id, Serial

  default_scope(:default).update(:order => [:id.desc])
end

手抜き全文検索

Class Post
  include DataMapper::Resource

  property :id, Serial
  property :title, String
  property :body, Text

  def self.search(str)         
    all(:title.like => "%#{str}%") |
    all(:body.like => "%#{str}%")   
  end
end
Post.search('unk').all(:limit => 5)

「でたー!クラウザーさんのLIKE '%foo%'だー!」

真面目にやるならdm-is-searchableでインデックスを別のストレージ(DM用語ではrepository)に保存する。

Comments


Option