SearchLogicを使用してRails-2.3で記述されたアプリケーションを、ArelとMetaWhereを使用してRails-3.0に移行していますが、書き込み方法がわからない操作が発生しています。
古いコードは次のとおりです。
if params[:city] && params[:city].respond_to?(:each)
users = users.person_address_city_like_any(params[:city])
end
これが行ったLIKE
ことは、params [:city]配列の各アイテムに対して一致を実行することでした。
これは、検索語が1つしかないMetaWhereでは簡単です。
users = users.where(:person => { :address => { :city.matches => '%city1%' } })
しかし、これを任意の数の都市でどのように書くのでしょうか?