Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Ruby

【Ruby on Rails】簡単なメモアプリの作成|検索機能をGemなしで実装

Ruby on Rails Gemなしで検索機能の実装

動画で解説を見る



開発環境

  • Ruby:version 3.1.2
  • Ruby on Rails:version 7.0.4
  • Visual Studio Code:version 1.73.0
  • OS:Windows10

Ruby on Railsで検索機能の実装手順

Ruby on Railsの検索機能は、ransackなどのgemなしでも比較的簡単に実装することができます。

今回はメモアプリの作成で使用したコードを用いて検索機能の作り方を解説していきます。

検索機能のルーティングを作成

まずは検索機能のルーティングを作成していきます。

今回はHTTPSメソッドはGETメソッドを指定していますが、POSTメソッドでも問題ありません。

GET通信かPOST通信にするかは、送信されるパラメータの機密性によって使い分けてください。

検索機能のフォームを作成

次に検索機能のフォームを作成します。

今回は非同期通信にしたいためform_withのlocalはfalseにしています。

また、methodはルーティングで作成したHTTPSメソッドに合わせてGETメソッドを指定しています。

検索機能のコントローラーを作成

次にルーティングで指定したmemosコントローラー内にsearchメソッドを作成していきます。

あいまい検索にするためにwhereメソッドで指定したカラムに対してLIKE句を使用します。

また、今回は複数カラムに対して条件を指定したいため、or条件で2つ目のカラムを指定し、第二引数と第三引数に条件を指定します。

今回は部分一致なので「%xxxx%」としていますが、完全一致は「xxxx」、前方一致は「xxxx%」、後方一致は「%xxxx」になりますので、処理した条件に合わせて変更してください。

上記一致させる条件のの書き方が分かっていれば、検索機能にプルダウンで検索する条件を選択してもらうように処理をすれば検索機能がさらに充実します。

検索機能の非同期通信(Ajax)を作成

最後に検索機能の非同期通信(Ajax)を作成します。

今回は投稿一覧にデータを渡して再表示したいため、リスト一覧のIDを指定して検索結果を表示させています。

また、検索結果の表示と併せてフラッシュメッセージで検索結果の件数を表示をしたいため、フラッシュメッセージのIDを指定して表示させています。

検索機能のフォームデザインを作成

上記で検索機能の処理は完成していますが、追加でデザインだけ整えておきます。

フォームにはplaceholderであらかじめテキストの表示をしていますが、デザインによっては検索アイコンを表示させるデザインもあります。

このあたりはUI/UXになっていますので、全体のデザインに合わせて調整してください。

おわりに

Ruby on Railsで検索機能の実装について解説してきましたが、いかがだったでしょうか。

今回はメインコンテンツの中に検索機能を実装しましたが、検索機能はヘッダーに実装されることも多いため、WEBアプリケーションの仕様に合わせて実装してもらえてればと思います。

是非、ユーザーがWebアプリケーションを使いやすいようにするためにも、検索機能の実装にチャレンジにしてみてください。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Ruby