我正在尝试使用 elasticsearch 在我的 ruby on rails 应用程序中实现自动完成。我按照以下链接中的示例进行操作
它包括 html.slim 文件,但是当我尝试使用控制器执行此操作并查看文件时,后端没有任何反应。我没有看到 jQuery 正在运行。
我的代码如下。
app/models/result.rb
:
class Result < ActiveRecord::Base
searchkick autocomplete: ['univ_name']
end
app/controllers/results_controller.rb
包括以下方法
class ResultsController < ApplicationController
def index
if params[:query].present?
@results = Result.search(params[:query], page: params[:page])
else
@results = Result.all.page params[:page]
end
end
def autocomplete
render json: Book.search(params[:query], autocomplete: true, limit: 10).map(&:title)
end
end
app/views/index.html.erb
:
<%= form_tag results_path, class: "form-inline", method: :get do %>
<div class="input-group input-group-lg" >
<%if params[:query].present? %>
<div class="input-group-btn">
<%end%>
<%= link_to "clear", results_path, class: "btn btn-default" %>
</div>
<%= text_field_tag :query, params[:query], class: "form-control", id: "result_search", autocomplete: "off" %>
<div class=input-group-btn">
<%= submit_tag "Search", class: "btn btn-primary" %>
</div>
</div>
<%end%>
app/assets/javascripts/results.js.coffee
$ ->
$('#result_search').typeahead
name: "result"
remote: "/results/autocomplete?query=%QUERY"
我还包括
<%= javascript_include_tag "//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"%>
<%= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.9.3/ typeahead.min.js" %>
<%= stylesheet_link_tag "typeahead"%>
我不知道我哪里出错了。谁能帮我这个?
任何帮助表示赞赏