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?

Était-ce utile?

La solution

Essayez:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top