Railsで検索フォームを作ったときに少しハマったので、メモ
やりたかったこと
トップページにユーザー検索を行うフォームを設置し、 検索ボタン押下後、検索結果を引き継いだユーザー一覧を表示。
解決方法
<form action="呼び出したいアクションに紐づくurl">
を設定すれば良い。
※呼び出したい
実際のコード
routes.rb
# /users にusers_controllerのindexアクションが紐付いている。 resources :users, only: [:index]
application.html.erb
<!-- actionにcontrollerのアクションに紐づくURL"/users"を設定 --> <form class="navbar-form navbar-left" action="/users"> <div class="input-group"> <div class="form-group"> <!-- nameで指定した値"user_name"でcontroller側で取得出来る --> <input type="text" name="user_name" class="form-control" placeholder="友達を探す"> </div> <span class="input-group-btn"> <button type="submit" class="btn btn-default">検索</button> </span> </div> </form>
users_controller.rb
def index # ユーザーの取得処理 @users = user_search(params['user_name']) end