Несколько LIKE совпадений с Arel & MetaWhere

Я перевожу приложение, написанное на Rails-2.3 с SearchLogic, на Rails-3.0 с Arel и MetaWhere, и я работаю над операцией, которую я не знаю, как писать.

Старый код был:

if params[:city] && params[:city].respond_to?(:each)
  users = users.person_address_city_like_any(params[:city])
end

что это было сделать запустить LIKE соответствует каждому элементу в массиве params[:city].

Это достаточно просто в MetaWhere, когда есть только один поисковый запрос:

users = users.where(:person => { :address => { :city.matches => '%city1%' } })

но как мне написать это с произвольным числом городов?

1 ответ

Решение

Пытаться:

users = users.where (: person => {: address => {: city.matches_any => ['% city1%', '% city2%']}})

Другие вопросы по тегам