窓際BLOG

プログラミングの学習メモや書籍の感想等を公開していきます。

RubyonRails:検索フォームの作り方

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

参考にさせて頂いたページ

rails.densan-labs.net qiita.com