【備忘録】あいまい検索(インクリメンタルサーチで似たユーザーを表示させる)
非同期通信で、
入力された値を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