Rails 検索機能実装

View側

<%= form_tag('/shops', method: 'get') do %>
<%= label_tag(:name_key, ''search name:') %>
<%= text_field_tag(:name_key) %>
<%= submit_tag('Search' %> <%= link_to 'Clear', shops_path %>
<% end %>

form_tagはフォームの開始・終了タグを生成するメソッド

第一引数には、モデルオブジェクトを記載する。
あとはオプション
検索して表示するだけだからHTTPメソッドはget

controller側

def index

  if params[:name_key]

      @shops = Shop.where('name LIKE ?',"%#{params[:name_key]}

  else

  @shops = Shop.all

  end

end

text_field_tagで:name_keyを取得していた。

それがparamsでコントローラーに渡ってくる。

それでもって検索している。

具体的にはSopモデルの中からwhere文を利用している

LIKEは含んでいる文字列を検索するメソッド、第二引数に入力値を渡している。

それだけ。

参照サイト
Paizaは結構良い

Rails入門2: 実用的なRailsサービスを作ろう「Googleマップを組み込む」 | プログラミング学習なら【paizaラーニング】