Я использую jquery-ui autocomplete с рельсами, но он не работает должным образом. Это не соответствует результатам, которые я наложил на поиск, но он скорее покажет все результаты json (без фильтра).Автозаполнение jquery не соответствует моему json
В моих маршрутах
get '/autocomplete-photos', to: 'photos#autocomplete'
В мой контроллер
def autocomplete
@photos = Photo.all
respond_to do |format|
format.json { render json: @photos.as_json(only: [:title, :user, :description], methods: [:avatar_url, :user, :photo_url])}
end
end
На мой взгляд
<%= search_form_for @spot_search, url: search_path do |f| %>
<%= f.text_field :title_cont, id: "auto-search", :size => 15, :placeholder => "Encuentra spots..." %>
<button type="submit" class="collapsebutton searchbutton">
<i class="icon-magnifier"></i></button>
<% end %>
</div>
</div>
<script>
$(document).ready(function(){
$("#auto-search").autocomplete({
source: "autocomplete-photos.json",
minLength: 2,
select: function(event, ui) {
$('#auto-search').val(ui.item.photo.title);
}
}).data("ui-autocomplete")._renderItem = function(ul, item) {
var inner_html = '<a href="' + item + '"><div class="list_item_container"><div class="image"><img class="avatar_small" src="' + item.photo_url + '"></div><div class="label">' + item.title + '</div><div class="description">' + item.description + '</div></div></a>';
return $("<li></li>")
.data("item.autocomplete", item)
.append(inner_html)
.appendTo(ul);
};
});
</script>
Ба но я не получаю результатов от того, что вы положили на поиск, но вместо этого я получаю все JSON. Что мне не хватает?
Спасибо!
Вы передаете значение своему контроллеру, или это пустая строка? (давая вам все результаты, а не результаты фильтрации) – wahwahwah