二足のわらじ

〜プログラミングとSEOの勉強をはじめたミーハー26歳のメモ帳〜

【備忘録】あいまい検索(インクリメンタルサーチで似たユーザーを表示させる)

非同期通信で、
入力された値をparamsで送る
(非同期通信のdataは、必ずハッシュ型になる)

    let input = $("#user-search-field").val();

    $.ajax({
      type: 'GET',
      url: '/users',
      data: { keyword: input },
      dataType: 'json'
    })

    .done(function(users) {
      console.log("成功です");
    })
    .fail(function() {
      console.log("失敗です");
    });

コントローラーで
データベースとのやりとりを記載する

・whereは 条件「〜ならば」
・where.notは 条件「〜でなければ」


User.where( ' カラム名 like ?' , ' % 検索したい文字列 % ' )
%で挟むと、「文字列のどの部分にでも検索したい文字列が含まれていればOK」という意味になる

   @users = User.where(['name LIKE ?', "%#{params[:keyword]}%"] ).where.not(id: current_user.id).limit(10)

【参考記事】 Rails - LIKE句を使った文字のあいまい検索(特定の文字を含む語句を曖昧検索したい場合) - Qiita