Я использую этот stackoverflow answer, чтобы попытаться реализовать Twitter Typeahead для моего приложения rails и я также попытался внедрить ознакомительный файл Github, но при вводе текста нет подсказок в текстовое поле.
Мой контроллер
class PagesController < ApplicationController
def typeahead
@vn = Vn.search_by_name(params[:search])
render json: @vn.results
end
end
Мой маршрут
get 'typeahead/:query' => 'pages#typeahead'
Application.js
//= require twitter/typeahead
//= require twitter/typeahead/bloodhound
pages_controller.js в активах/javascripts
var bloodhound = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
// sends ajax request to /typeahead/%QUERY
// where %QUERY is user input
remote: '/typeahead/%QUERY',
limit: 50
});
bloodhound.initialize();
// initialize typeahead widget and hook it up to bloodhound engine
// #typeahead is just a text input
$('.typeahead').typeahead(null, {
displayKey: 'name',
source: bloodhound.ttAdapter()
});
// this is the event that is fired when a user clicks on a suggestion
$('.typeahead').bind('typeahead:selected', function(event, datum, name) {
doSomething(datum.id);
});
Моя точка зрения
<%= form_tag(search_path, :method => "get", class: "navbar-form", id: "search-form") do %>
<%= text_field_tag :search, params[:search], class: "form-control padding-search typeahead", placeholder: "Search" %>
<%= button_tag(type: "submit", class: "btn btn-primary padding-search") do %>
<% end %>