検索フォームの作成 その1
参考記事 シンプルで分かり易い
https://qiita.com/yusuko/items/cff4e46aeafbc3beecf2
ポイントとしては
searchアクションは普通にどっかに定義する
text_field_tagを使う。キーは:searchとかにしとく
(なんかtext_fieldではだめだよ、って記事見たことある気がする。ちなみにこれは普通にform_tag内で使ってるtext_field_tagだからね)
指定したパスsearch_pathでhomeコントローラーのsearchアクションとかに飛んだら(この辺は自分のアプリがそうだったって話)、そこでデータを受け取るワケだけど、その前に
モデルの方にself.メソッド(仮引数)で検索の仕方を定義しておく。
当たり前だが、モデルの方で定義してないとコントローラーで急に.searchは使えないので注意。
searchアクションに飛んだら
とかでモデルで定義したように検索する。paramsで受け取ってることにちょっと注意。
あとはアクション動いた後のビューファイルを作ってそこで@インスタンスを表示するだけ。パーシャルとかにしてページの一部に表示することが多そう。普通に検索結果ページにしてもいいけど。
モデルで定義する曖昧検索の参考記事はこっち
https://qiita.com/seri1234/items/765423c2c46ca4114da0
ポイントは基本形が
モデル名.where( 'カラム名 like ?', '検索したい文字列' )
であるということと。定番の含んで入ればヒットするのは
モデル名.where( 'カラム名 like ?', '%検索したい文字列%' )
であるということ。