エラスティックサーチを使用して、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"%>
どこが間違っているのかわかりません。誰でもこれで私を助けることができますか?
どんな助けでも大歓迎です