De multiples rencontres comme avec Arel & MetaWhere
-
29-09-2019 - |
Question
Je suis une demande écrite transition dans Rails-2.3 avec SearchLogic Rails-3.0 avec Arel et MetaWhere , et je suis en cours d'exécution dans une opération que je ne sais pas comment l'écriture.
L'ancien code était:
if params[:city] && params[:city].respond_to?(:each)
users = users.person_address_city_like_any(params[:city])
end
ce que cela a été exécuté un match de LIKE
contre chaque élément dans les params.: Array [ville]
Ceci est assez facile à MetaWhere quand il n'y a qu'un seul terme de recherche:
users = users.where(:person => { :address => { :city.matches => '%city1%' } })
mais comment pourrais-je écrire cela avec un nombre arbitraire de villes?
La solution
Essayez:
users = users.where (: personne => {: adresse => {: city.matches_any => [ '% city1%', '% city2%']}})
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow