Jquery Typeahead.js使用Ruby on Rails搜索用户

Jquery Typeahead.js使用Ruby on Rails搜索用户,jquery,ruby-on-rails,typeahead.js,Jquery,Ruby On Rails,Typeahead.js,我是RubyonRails的新手。在我的应用程序中,有一些用户,我希望用户通过他们的姓名、用户名、姓氏等来搜索其他用户。当我在搜索栏上按enter键时,不知何故,我从源代码中使用了typeahead.js,但什么都没有发生。我得到的只是这样一个问号?任何帮助都将不胜感激。谢谢 我的路线上有这个。rb get '/users/typeahead/:query' => 'users#typeahead' def search_name_like search.where("name ILIKE

我是RubyonRails的新手。在我的应用程序中,有一些用户,我希望用户通过他们的姓名、用户名、姓氏等来搜索其他用户。当我在搜索栏上按enter键时,不知何故,我从源代码中使用了typeahead.js,但什么都没有发生。我得到的只是这样一个问号?任何帮助都将不胜感激。谢谢

我的路线上有这个。rb

get '/users/typeahead/:query' => 'users#typeahead' def search_name_like search.where("name ILIKE ?", "%#{name_like}%") end def search_typeahead search.where("name ILIKE ?", "%#{typeahead}%") end # GET /users # GET /users.json def index @search = User.new(search_params) @users = search_params.present? ? @search.results : User.all end # GET /users/typeahead/:query def typeahead @search = User.new(typeahead: params[:query]) render json: @search.results end private def search_params params[:user] || {} end 获取'/users/typeahead/:查询'=>'用户#typeahead' gemfile

gem 'twitter-typeahead-rails' gem'twitter-typeahead-rails' app/assets/javascripts/application.js

//= require typeahead var onReady = function() { // initialize bloodhound engine var searchSelector = 'input.typeahead'; var bloodhound = new Bloodhound({ datumTokenizer: function (d) { return Bloodhound.tokenizers.whitespace(d.value); }, queryTokenizer: Bloodhound.tokenizers.whitespace, // sends ajax request to remote url where %QUERY is user input remote: '/users/typeahead/%QUERY', limit: 50 }); bloodhound.initialize(); // initialize typeahead widget and hook it up to bloodhound engine // #typeahead is just a text input $(searchSelector).typeahead(null, { displayKey: 'name', source: bloodhound.ttAdapter() }); // this is the event that is fired when a user clicks on a suggestion $(searchSelector).bind('typeahead:selected', function(event, datum, name) { //console.debug('Suggestion clicked:', event, datum, name); window.location.href = '/users/' + datum.id; }); }; //=需要提前打印 app/assets/javascripts/users.js

//= require typeahead var onReady = function() { // initialize bloodhound engine var searchSelector = 'input.typeahead'; var bloodhound = new Bloodhound({ datumTokenizer: function (d) { return Bloodhound.tokenizers.whitespace(d.value); }, queryTokenizer: Bloodhound.tokenizers.whitespace, // sends ajax request to remote url where %QUERY is user input remote: '/users/typeahead/%QUERY', limit: 50 }); bloodhound.initialize(); // initialize typeahead widget and hook it up to bloodhound engine // #typeahead is just a text input $(searchSelector).typeahead(null, { displayKey: 'name', source: bloodhound.ttAdapter() }); // this is the event that is fired when a user clicks on a suggestion $(searchSelector).bind('typeahead:selected', function(event, datum, name) { //console.debug('Suggestion clicked:', event, datum, name); window.location.href = '/users/' + datum.id; }); }; var onReady=function(){ //初始化猎犬引擎 var searchSelector='input.typeahead'; var侦探犬=新侦探犬({ datumTokenizer:函数(d){ return Bloodhound.tokenizers.whitespace(d.value); }, queryTokenizer:猎犬,标记,空白, //将ajax请求发送到远程url,其中%QUERY是用户输入 远程:'/users/typeahead/%QUERY', 限额:50 }); 嗜血犬初始化(); //初始化typeahead小部件并将其连接到侦探犬引擎 //#typeahead只是一个文本输入 $(searchSelector).typeahead(空{ displayKey:'名称', 资料来源:猎犬。ttAdapter() }); //这是当用户单击建议时触发的事件 $(searchSelector).bind('typeahead:selected',函数(事件、数据、名称){ //调试('单击的建议:',事件,数据,名称); window.location.href='/users/'+datum.id; }); }; 我在下面的位置有typeahead.js

vendor/assets/javascripts/typeahead.js 供应商/assets/javascripts/typeahead.js 我的用户模型User.rb

get '/users/typeahead/:query' => 'users#typeahead' def search_name_like search.where("name ILIKE ?", "%#{name_like}%") end def search_typeahead search.where("name ILIKE ?", "%#{typeahead}%") end # GET /users # GET /users.json def index @search = User.new(search_params) @users = search_params.present? ? @search.results : User.all end # GET /users/typeahead/:query def typeahead @search = User.new(typeahead: params[:query]) render json: @search.results end private def search_params params[:user] || {} end def search_name_like search.where(“name ILIKE?”,“%#{name\u like}%”) 结束 def搜索引擎 search.where(“name-ILIKE?”,“%#{typeahead}%”) 结束 控制器用户\u controller.rb

get '/users/typeahead/:query' => 'users#typeahead' def search_name_like search.where("name ILIKE ?", "%#{name_like}%") end def search_typeahead search.where("name ILIKE ?", "%#{typeahead}%") end # GET /users # GET /users.json def index @search = User.new(search_params) @users = search_params.present? ? @search.results : User.all end # GET /users/typeahead/:query def typeahead @search = User.new(typeahead: params[:query]) render json: @search.results end private def search_params params[:user] || {} end #获取/访问用户 #GET/users.json def索引 @search=User.new(搜索参数) @用户=搜索参数是否存在@search.results:User.all 结束 #GET/users/typeahead/:查询 预先打印 @search=User.new(typeahead:params[:query]) 呈现json:@search.results 结束 私有的 def search_参数 params[:user]| |{} 结束 该视图类似于\u nav\u user.html.erblayouts/\u nav\u user.html.erb

div class="form-group" input class="typeahead" type="text" /div div class=“表单组” 输入class=“typeahead”type=“text” /div