DataMapperでPostgreSQLのILIKE演算子を実装する
PostgreSQLのLIKE演算子は大文字と小文字を区別します。そこで大文字と小文字を区別しないための演算子として「ILIKE」という演算子が用意されています。
しかし、ORMはILIKE演算子を実装していない、結局力づくで直接SQLを発行しないとILIKE演算子を利用できない、なんてことがあります。当然RubyのORMであるDataMapperもILIKE演算子が使えません。それでは困るのでILIKE演算子を使えるように実装しました。
これでDataMapperを使ってこんな風にILIKE演算子を使うことができます。
model.all('title.ilike' => "%#{word}%")