Я новичок в RAILS и даже больше в AJAX-вызовах.
У меня есть панель поиска, где я хочу выполнить автозаполнение, чтобы помочь пользователям найти элементы, присутствующие в БД.На данный момент я только пытаюсь отобразить данные вызова AJAX внутри консоли, но что бы я ни делал, оно всегда пусто ...
Я использую Rails 5.2.1
Моя форма:
<%= form_tag autocomplete_index_path,remote: true, method: :get do %>
<%= text_field_tag 'term', params[:term], class:"my_form"%>
<%= submit_tag "bouton", class: "my_button" %>
<% end %>
Мой контроллер (с помощью pg search):
class AutocompleteController < ApplicationController
def index
respond_to do |format|
format.json { render json: { data: Beer.search_beer(params[:term]).limit(5)} }
end
end
end
И файл моих активов / javascripts
$(document).ready(function(){
$(".my_form").keyup(function(){
var search = $(this).val();
if(search != ""){
$.ajax({
url: 'autocomplete',
method: 'GET',
dataType: 'json',
data: {'name': $("#term").val()},
success:function(data){
console.log('Success!', data);
}
});
}
});
});
Модель пива с pg scope
class Beer < ApplicationRecord
include PgSearch
belongs_to :brewery
belongs_to :category
belongs_to :style
has_many :bars, through: :beer_lists
pg_search_scope :search_beer,
against: :name,
using: {
tsearch: {
prefix: true
}
}
end
Если кто-то может помочь мне выяснить, почему Ajax-вызов всегда рендерит пустой массив, он был бы очень признателен!
Журнал консоли
Сервер Rails