Chciałbym dowiedzieć się, jakie podejście jest optymalne. Chciałbym mieć formularz wyszukiwania z dobrze działającym autouzupełnianiem.
Odpowiedzi:
2 dla odpowiedzi № 1Twoja akcja autouzupełniania kontrolera będzie wyglądać następująco:
def autocomplete
@products = Product.order(:name).where("name LIKE ?", ""%#{params[:search][:term]}%"")
respond_to do |format|
format.html
format.json {
render json: @products.map(&:name)
}
end
end
Będziesz musiał dodać jquery ui auto complete na swoim pliku application.js
//= require jquery-ui/autocomplete
A wywołanie funkcji jquery ui wyglądałoby mniej więcej tak:
$( "#search" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "search/auto_complete",
dataType: "json",
delay: 2000,
data: {
search: request
},
success: function( data ) {
response( data );
}
});
}
});