Ich habe Github selbst über Ransack gelesen und zusammengefasst, das häufig zur Implementierung von Suchfunktionen verwendet wird.
Ransack enables the creation of both simple and advanced search forms for your Ruby on Rails application (demo source code here).
Mit Ransack können Sie mit Ruby on Rails einfache und erweiterte Formulare erstellen.
Installieren Sie zuerst Ransack
gem 'ransack'
- The default param key for search params is now :q
2.form_for is now search_form_for
Derzeit verwende ich search_form_for anstelle von form_for.
3.you will get your search results (an ActiveRecord::Relation in the case of the ActiveRecord adapter) via a call to Ransack#result.
Suchergebnisse können durch Aufrufen der Ergebnismethode abgerufen werden.
Lassen Sie uns einen Controller basierend auf den oben genannten erstellen.
Suchparameter: Suche mit q und Dann habe ich das Ergebnis durch .result erhalten.
controller.rb
def index
@q = Person.ransack(params[:q])
@people = @q.result(distinct: true)
end
Die Ansicht sieht folgendermaßen aus: Es verwendet den Helfer search_form_for und den Suchparameter q. search_field ist das zu durchsuchende Feld.
form.html
<%= search_form_for @q do |f| %>
# Search if the name field contains...
<%= f.label :name_cont %>
<%= f.search_field :name_cont %>
# Search if an associated articles.title starts with...
<%= f.label :articles_title_start %>
<%= f.search_field :articles_title_start %>
# Attributes may be chained. Search multiple attributes for one value...
<%= f.label :name_or_description_or_email_or_articles_title_cont %>
<%= f.search_field :name_or_description_or_email_or_articles_title_cont %>
<%= f.submit %>
<% end %>
Im obigen Beispiel <% = f.search_field: name_cont%> Und so weiter, _cont wurde nach dem Namen geschrieben. Es wird nach einer teilweisen Übereinstimmung mit dem Namen gesucht. Was gibt es noch Ich habe einige aufgelistet.
Abrufmethode | Bedeutung |
---|---|
*_eq | gleich |
*_not__eq | anders |
*_lt | Kleiner |
*_lteq | Weniger als |
*_gt | Größer |
*_gteq | das ist alles |
*_cont | Teilweise Übereinstimmung |
*_start | *Beginnt mit |
*_end | *Ende mit |
Es gibt noch mehr Funktionen, aber heute an einem Ort wie diesem Seien Sie nicht müde, Englisch zu lesen ...
** 78 Tage, um ein vollwertiger Ingenieur zu werden **
Recommended Posts