Dieses Mal erstellen wir eine Suchfunktion mit einem Edelstein namens "Ransack". Ransack ist ein sehr nützliches Juwel, das es einfach macht, komplexe Suchfunktionen mit weniger Code zu erstellen. Da Sie mit Ransack problemlos eine Sortierfunktion erstellen können, erstellen wir diese auch.
Das Ziel dieser Suche ist die Stretch-Liste (Stretchs-Tabelle) und ihre Kategorieliste (Kategorietabelle). Auf dem Streckenlistenbildschirm (Indexansicht) wird ein Suchfenster angezeigt.
gem 'ransack';
Installieren Sie mit "Bundle Install"
Fügen Sie der Stretch-Index-Ansicht ein Suchfenster hinzu
<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: "Geben Sie den Namen der Dehnung und des Muskels ein" ,data: {"turbolinks" => false}%>
<%= f.submit "Suche", class: "btn btn-success btn-lg" %>
<% end %>
</div>
Mit CSS einstellen
.form-inline .form-control {
display: inline-block;
width: 80%;
}
class StretchsController < ApplicationController
def index
#Suchfunktion(Suchwortparameter[:q]Empfangen Sie bei @stretchs)
@q = Stretch.all.ransack(params[:q])
@stretchs = @q.result(distinct: true).page(params[:page])
end
end
Empfangen Sie das Suchwort mit params [: q], geben Sie die entsprechenden Daten in die Suche in @stretchs ein. Es ist ein Formular, um wieder zur Indexansicht zurückzukehren.
Damit ist die Implementierung der einfachen Suchfunktion abgeschlossen.
Dieses Mal habe ich eine Suchfunktion mit Ransack erstellt. Wenn Sie etwas falsch finden, bringen Sie es mir bitte bei.
Recommended Posts