🌊

Railsでキーワード検索をlike句で行う際の記述

に公開

株式会社TECH LUCKという会社で代表兼エンジニアをしている齊藤です。

DXプロジェクト、開発プロジェクト、Rails開発などでお困りごとがありましたら弊社HPからご相談をいただけますと幸いです。
以下のような問題に対応することが可能です。

  • プロジェクトでRailsエンジニアが足りなくて困っている
  • Railsのバージョンアップをしたいがノウハウ・リソースが足りなくて困っている
  • オフショア開発をしているが、要件の齟齬やコード品質が悪いので改善したい

また、Railsエンジニアも募集しておりますので、興味がありましたら弊社HPからご連絡いただけますと幸いです。

前提

毎回検索していると思ったので記事にしました。
2つの書き方ができることがわかったので、どちらか好きな方を選んで使う形になりそうです。

実装方法

searches_controller.rb
# searches_controller.rb
keyword = params[:keyword]

# これでも検索できる
users = User.where("first_name LIKE ?", "%#{keyword}%").
    or(where("last_name LIKE ?", "%#{keyword}%"))

# これでも検索できる
users = User.where("first_name like :word or last_name like :word", word: "%#{keyword}%")

Discussion