J'écris une application rails 3, et j'ai une table de base de données d'utilisateurs. Les utilisateurs ont des colonnes first_name et last_name. Sur ma page qui répertorie les utilisateurs, je souhaite avoir un seul champ de recherche de texte permettant à l'utilisateur de filtrer la liste. Ils doivent être en mesure de taper dans le champ de recherche l'un des suivants: - Un prénom d'un utilisateur - Un nom de famille d'un utilisateur - Un nom complet d'un utilisateur (par exemple "Smith, John")Clause "Where" avec des champs concaténés dans Rails 3
Je ne sais pas comment écrire la clause where qui retournera ces résultats. Le plus proche que j'ai obtenu est ci-dessous, mais la partie des champs concaténés ne fonctionne pas.
where('(first_name LIKE :search) or (last_name LIKE :search) or ("#{last_name}, #{first_name}" LIKE :search)', :search => "%#{search}%")
Je suis aussi intéressé de savoir s'il y a une meilleure façon de gérer mes ou des déclarations, que cette clause devient tout à fait maladroite.
Merci pour votre aide!
Pourriez-vous me dire dans quel Railscasts avez-vous trouvé cette solution? Merci d'avance. –
Ce n'était pas d'un railcast. –
Ok merci! Je l'ai trouvé très utile :) –