yuta_eng_prg’s diary

筆者がプログラミング学習の内容を綴るだけのブログです。

検索機能の実装(Ruby on Rails)

検索機能の実装の仕方を確認したいと思います。

ビューファイルの検索フォームのコードは、

<%= form_with(url: search_items_path, local: true, method: :get) do |form| %>
<%= form.text_field :keyword, placeholder: "検索する" %>
<%= form.submit "検索" %>
<% end %>

と記述し、

ルーティングは

Rails.application.routes.draw do
resources :itemss do

# URLにidを入れない場合
collection do
get 'search'
end
#/

# URLにidを入れる場合
member do
get 'search'
end
#/
 
end
end

と記述します。

テーブルとのやりとりに関するメソッドはモデルに記述するので、

class Item < ApplicationRecord
 
def self.search(search)
if search != ""
Item.where('text LIKE(?)', "%#{search}%")
else
Item.all
end
end
 
end

と記述します。今回は検索対象とするカラム名はtextで、検索範囲はtextの中に入力された値(変数search)を含むデータを検索する記述です。

コントローラーには、

def search
@items = Item.search(params[:keyword])
end

と記述します。

あとは表示されるビューファイル(search.html.erb)を作成すれば、検索機能の完成です。