Несколько 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%']}})