Я перевожу приложение, написанное на 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%' } })
а как мне написать это с произвольным числом городов?