DataMapperでPostgreSQLのILIKE演算子を実装する

PostgreSQLのLIKE演算子は大文字と小文字を区別します。そこで大文字と小文字を区別しないための演算子として「ILIKE」という演算子が用意されています。

しかし、ORMはILIKE演算子を実装していない、結局力づくで直接SQLを発行しないとILIKE演算子を利用できない、なんてことがあります。当然RubyのORMであるDataMapperもILIKE演算子が使えません。それでは困るのでILIKE演算子を使えるように実装しました。

これでDataMapperを使ってこんな風にILIKE演算子を使うことができます。

model.all('title.ilike' => "%#{word}%")