Cette fois, nous allons créer une fonction de recherche en utilisant une gemme appelée ransack
. ransack est un joyau très utile qui facilite la création de fonctions de recherche complexes avec moins de code. De plus, comme vous pouvez facilement créer une fonction de tri avec ransack, nous la créerons également.
La cible de cette recherche est la liste étendue (tableau des étirements) et sa liste de catégories (tableau des catégories). Une fenêtre de recherche sera fournie sur l'écran de la liste étendue (vue d'index).
gem 'ransack';
Installer avec bundle install
Ajouter une fenêtre de recherche à la vue d'index extensible
<div class= serch.id>
<%= search_form_for @q, class:'form-inline' ,url: stretchs_path do |f| %>
<%= f.search_field :action_muscles_or_name_cont, class: 'form-control input-lg', placeholder: "Entrez le nom de l'étirement et le nom du muscle" ,data: {"turbolinks" => false}%>
<%= f.submit "Chercher", class: "btn btn-success btn-lg" %>
<% end %>
</div>
Ajuster avec CSS
.form-inline .form-control {
display: inline-block;
width: 80%;
}
class StretchsController < ApplicationController
def index
#Fonction de recherche(Rechercher des paramètres de mots[:q]Recevez sur @stretchs)
@q = Stretch.all.ransack(params[:q])
@stretchs = @q.result(distinct: true).page(params[:page])
end
end
Recevoir le mot de recherche avec les paramètres [: q], mettre les données correspondantes dans la recherche dans @stretchs, C'est un formulaire pour revenir à la vue d'index.
Ceci termine la mise en œuvre de la fonction de recherche simple.
Cette fois, j'ai créé une fonction de recherche à l'aide de ransack. Si vous trouvez quelque chose qui ne va pas, apprenez-moi s'il vous plaît.
Recommended Posts