[RUBY] Rails-API-Modus Ich habe versucht, die Mehrfachsuchfunktion für Schlüsselwörter mithilfe von Arrays und iterativer Verarbeitung zu implementieren.

Bevor es eine Funktion wird

def keyword
    if params[:keyword]
      keywords = params[:keyword].split(/[[:blank:]]+/).select(&:present?)
      keywords.each do |keyword|
        offices = Office.where('name LIKE ? OR address LIKE ? OR near_station LIKE ? OR introduction LIKE ? OR company LIKE ?',"%#{keyword}%", "%#           {keyword}%", "%#{keyword}%", "%#{keyword}%", "%#{keyword}%")
      end
    else
      pagy, offices = pagy(Office.all)
      pagy_headers_merge(pagy)
    end
    render json: offices, each_serializer: OfficeIndexSerializer, include: '**'
  end

Ich bin mit einer solchen Beschreibung herumgewandert. Der Grund ist, dass es möglich ist, mit einem Wort zu suchen, aber mit mehreren Schlüsselwörtern (zum Beispiel einer Suchmethode wie "Tokyo Fukuoka" war es möglich, nur mit dem Wort Fukuoka zu suchen.

Was mich interessiert hat

Endgültiger Code

  def keyword
    if params[:city_id]
      offices = Office.where(city_id: params[:city_id])
    elsif params[:keyword]
      keywords = params[:keyword].split(/[[:blank:]]+/).select(&:present?)
      offices = []
      keywords.each do |keyword|
        offices += Office.where('name LIKE (?) OR address LIKE (?) OR near_station LIKE (?) OR introduction LIKE (?) OR company LIKE (?)',"%#{keyword}%", "%#{keyword}%", "%#{keyword}%", "%#{keyword}%", "%#{keyword}%")
      end
    else
      pagy, offices = pagy(Office.all)
      pagy_headers_merge(pagy)
    end
    render json: offices
  end

Was sich geändert hat, ist, dass wir "Büros = []" hinzugefügt haben. Ein Bild von einer Box zum Speichern von Schlüsselwörtern. Dann habe ich () zu office + = Office.where und? In der where-Klausel hinzugefügt.

Infolgedessen konnte eine Suchfunktion nicht nur für eine Einzelwort-Stichwortsuche wie "Tokyo", sondern auch für mehrere Stichwörter wie "Tokyo Fukuoka Chiba" eingerichtet werden.

Recommended Posts

Rails-API-Modus Ich habe versucht, die Mehrfachsuchfunktion für Schlüsselwörter mithilfe von Arrays und iterativer Verarbeitung zu implementieren.
Ich habe versucht, die Ajax-Verarbeitung der ähnlichen Funktion in Rails zu implementieren
[API] Ich habe versucht, die Postleitzahlensuch-API zu verwenden
[Java] Ich habe versucht, die Yahoo API-Produktsuche zu implementieren
Ich habe versucht, die ähnliche Funktion durch asynchrone Kommunikation zu implementieren
[Rails] Ich habe versucht, die Stapelverarbeitung mit der Rake-Task zu implementieren
Ich habe versucht, das Iterator-Muster zu implementieren
Ich habe versucht, die Stream-API zusammenzufassen
[Rails] Ich habe versucht, eine Transaktion zu implementieren, die mehrere DB-Prozesse kombiniert
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Ich habe versucht, die Sitzung in Rails zu organisieren
So implementieren Sie die Brotkrumenfunktion mit gretel
Ich habe versucht, einen Server mit Netty zu implementieren
[Rails] So stellen Sie über den HTTP-Client eine Verbindung zu einer externen API her (ich habe versucht, eine Verbindung zur Qiita-API herzustellen)
Ich möchte die API mit Rails auf mehreren lokal eingerichteten Docker-Composes treffen
Ich habe versucht, die Server-Push-Funktion von Servlet 4.0 zu verwenden
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
[Rails 6.0, Docker] Ich habe versucht, die Konstruktion der Docker-Umgebung und die zum Erstellen eines Portfolios erforderlichen Befehle zusammenzufassen
Ich habe einen Unit-Test der Rails-Anwendung mit RSpec und FactoryBot versucht
[Rails] Ich habe zum ersten Mal versucht, die button_to-Methode zu verwenden
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit spiritueller Technik zu erhöhen
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
[Rails] Funktion zum Suchen und Auflisten von Produkten aus mehrstufigen Kategorien
Ich habe versucht, die Umgebung nach und nach mit Docker aufzubauen
Suchfunktion mit [Rails] Ransack
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der Abstammung "Ich habe versucht, ein Fenster mit Bootstrap 3 zu erstellen"
Nachdem ich Progate gelernt hatte, versuchte ich, eine SNS-Anwendung mit Rails in der lokalen Umgebung zu erstellen
Implementieren Sie eine verfeinerte Suchfunktion für mehrere Modelle ohne Rails5-Juwel.
Ich habe versucht, Docker und Maven / Netbean mit Jib gut zu integrieren
[Rubiy] Heute Abend habe ich versucht, die Schleifenverarbeitung zusammenzufassen [Zeiten, Pause ...]
Ich habe versucht, die Cache-Funktion des Application Container Cloud Service zu verwenden
Ich habe versucht zu verstehen, wie die Rails-Methode "redirect_to" definiert ist
Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen
Ich habe versucht zu verstehen, wie die Rails-Methode "link_to" definiert ist
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
[Rails] Ich werde den Mechanismus und die Methode der Verwendung von payjp (API) sehr sorgfältig schreiben (Kureka-Registrierung).
Ich habe versucht, die Methode zu erklären
Ich habe versucht, die Java8 Stream API zu verwenden
Ich habe die Punkte zusammengefasst, die bei der kombinierten Verwendung von Ressourcen und Ressourcen zu beachten sind
So implementieren Sie eine Diashow mit Slick in Rails (einzeln und mehrfach nacheinander)
[Rails] Ich war süchtig nach den Nginx-Einstellungen, als ich Action Cable verwendete.
Ich habe WSL2 + Ubuntu in Window10 eingeführt und versucht, GDC, DMD, LDC zu verwenden
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Ich habe versucht, die wichtigsten Punkte des gRPC-Designs und der Entwicklung zusammenzufassen
[Rails] Ich werde die Prozedur zum Implementieren der Follow-Funktion mit form_with erklären.