19/08/2022
Installer un petit moteur de recheche à l'aide de PG_SEARCH
Vous avez besoin de faire un moteur de recherche qui se fait à travers plusieurs Model ?
Pg_search est là pour vous !
Étape d'installation :
Prenons comme exemple un model Post
Premièrement, il faut ajouter le gem pg_search :
bundle add pg_search
post.rb
class Post < ApplicationRecord
include PgSearch::Model
multisearchable against: [:title, :content]
end
Si vous avez déjà des enregistrements, il faudra réindexer le model
rails g migration ReindexPost
20220819104750_reindex_post.rb
class ReindexPost < ActiveRecord::Migration[7.0]
def change
PgSearch::Multisearch.rebuild(Post)
end
end
rails db:migrate
pages_controller.rb
...
unless params[:search].blank?
@results = PgSearch.multisearch("%#{ params[:search] }%")
end
...
Il n'y a plus qu'à ajouter le formulaire de recherche à votre view :
recherche.html.erb
<%= form_tag recherche_path, method: :get do %>
<%= text_field_tag :search, params[:search], PE9316:44 params[:search], class: "input", placeholder: "ex: Ruby, React...", autofocus: true %>
<% end %>
Et voilà, c'est tout chaud ! Laissez reposer 15 minutes au bord de la fenêtre, puis déguster tout seul ou à plusieurs (c'est mieux à plusieurs).