5 votes

Le résultat de la recherche ne s'affiche pas

J'ai un problème lors de la recherche d'enregistrements dans PostgreSQL avec un mot clé de recherche particulier mais aucun enregistrement ne s'affiche. Voici le code.

 filter_text=params[:filter_search]
 @outputs = Output.where("name LIKE '%#{filter_text}%'").order("name ASC")

7voto

孙悟空 Points 696

Essayez ceci :

    filter_text=params[:filter_search] 
    @outputs = Output.where("name LIKE ?","%#{filter_text}%").order("name ASC")

3voto

Deepak Mahakale Points 13858

Si vous souhaitez effectuer une recherche sans tenir compte de la casse, optez pour ILIKE

filter_text = params[:filter_search]
@outputs = Output.where("name ILIKE ?", "'%#{filter_text}%'").order("name ASC")

3voto

araratan Points 1133

Au lieu de :

filter_text=params[:filter_search]
@outputs = Output.where("name LIKE '%#{filter_text}%'").order("name ASC")

Essayez ce qui suit :

filter_text=params[:filter_search]
@outputs = Output.where(["name LIKE ?", "%#{filter_text}%"]).order("name ASC")

3voto

titan Points 601

Si vous utilisez saccager il vous permettra d'utiliser des méthodes simples pour search . Utilisation de ransack vous n'aurez besoin que de cela :

@outputs = Output.search(name_cont: params[:filter_search]).result.order("name ASC")

1voto

Fakhir Shad Points 584

Une façon simple de faire une recherche est d'utiliser Ransack . Ce qui vous fournit un mécanisme de recherche efficace.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X