Я новый разработчик Ruby on Rails, работающий над приложением, использующим плагин easy-Autocomplete. Я следовал за учебником на нем и не могу заставить его работать полностью. Javascript не выполняется автоматически, и при ручном вызове полученный JSON не обрабатывается.
Javascript, который использует введенные данные и вызывает обращение к серверу, работает. И контроллер выполняет поиск и создает объект JSON.
Но JSON, кажется, никогда не возвращается в браузер, поскольку в поле никогда не отображается раскрывающийся список с возвращенными данными. (На стороне сервера я проверил, что генерируются правильные данные).
Другая проблема заключается в том, что javascript в файле Assets никогда не выполняется. Я получаю javascript для выполнения на поле, только если вручную ввожу его в консоль Chrome Devtools. Как только это введено, серверный вызов отключается. Но, опять же, полученный JSON не отображается в раскрывающемся списке с полем.
Плагин easy-Autocomplete и таблицы стилей работают нормально при использовании простого javascript в браузере (пять цветов и ввод любых букв в поле приводят к правильному отображению и выбору из массива данных).
# The Javascript:
document.addEventListener("turbolinks:load", function() {
$input = $("[id='basics']")
var options = {
getValue: "name",
url: function(phrase) {
return "/search.json?q=" + phrase;
},
categories: [
{
listlocation: "users",
header: "Users",
}
]
};
$input.easyAutocomplete(options);
});
# The controller action:
def search
@users = User.ransack(email_cont: params[:q]).result(distinct: true).limit(5)
respond_to do |format|
format.html {}
format.json {
@users = @users.limit(3)
}
end
end