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ラーニング】