Bei der Suche nach in der Datenbank gespeicherten Daten und deren Anzeige in HTML werden diese grundsätzlich mithilfe einer sogenannten "LIKE-Klausel" implementiert.
Modellklassenname.where('Spaltenname für die Suche nach LIKE(?)', "Zu suchende Schlüsselwörter")
Damit kann jedoch nur die perfekte Übereinstimmung in den Suchergebnissen angezeigt werden. (Wenn Sie beispielsweise bei Google nach "Baseball" suchen, werden einige, die nicht genau übereinstimmen (Baseballfeld, professioneller Baseball usw.), in den Suchergebnissen angezeigt.
Wenn Sie eine solche Einstellung vornehmen möchten, Wenn Sie die LIKE-Klausel angeben, indem Sie% vor und nach dem zu durchsuchenden Schlüsselwort setzen, wird das in der Zeichenfolge enthaltene Schlüsselwort getroffen.
Product.where('title LIKE(?)', "%#{params[:keyword]}%")
Im Fall von ↑ können Sie nach Daten suchen, die Schlüsselwörter im Titel enthalten.
Darüber hinaus gibt es andere Möglichkeiten, Daten zu suchen.
where('title LIKE(?)', "a%")
#↑ Suchen Sie nach Titeln, die mit a beginnen
where('title LIKE(?)', "%b")
#↑ Suche nach Titeln beginnend mit b
where('title LIKE(?)', "%c%")
#↑ Suche nach Titeln beginnend mit c
Recommended Posts