データベースに保存されたデータを検索し、HTML上に表示する場合、基本的に「LIKE句」というものを使って実装していく。
LIKE句の使い方
モデルクラス名.where('検索するカラム名 LIKE(?)', "検索するキーワード")
ただ、これでは完璧に一致するものしか検索結果に表示することができない。
(例えばgoogleで「野球」検索した時、完全に一致しないものも(野球場、プロ野球など)検索結果に出てくる。
そのような設定にしたい場合は、
検索するキーワードの前後に%を入れてLIKE句を指定すると、文字列の中に含まれたキーワードがヒットする。
Product.where('title LIKE(?)', "%#{params[:keyword]}%")
↑の場合、タイトルの中にキーワードが含まれるデータを検索できる。
また、このほかにもデータ検索する方法がある
where('title LIKE(?)', "a%")
#↑aから始まるタイトルを検索
where('title LIKE(?)', "%b")
#↑bから始まるタイトルを検索
where('title LIKE(?)', "%c%")
#↑cから始まるタイトルを検索