Estoy trabajando en la aplicación de búsqueda usando jquery ui rails gem.
Aquí está mi configuración.
HTML:
<%= form_tag(contacts_path, class: "form-inline", role: "search", method: :get, remote: true) do %> <%= text_field_tag :term, params[:term], class: "form-control search-input", id: "term", placeholder: "Search..", autocomplete: "off" %> <%= hidden_field_tag :category_id, params[:category_id] %> <button class="btn btn-primary btn-lg main-btn search-btn" type="submit">Search</button> <% end %> Note que coloco remote:true en el formulario. Y luego en mi controlador de contactos:
def autocomplete if params[:category_id] && !params[:category_id].empty? category_find = Category.find(params[:category_id]) @contacts = category_find.contacts.search(params[:term]).order(created_at: :desc).page params[:page] render json: @contacts.map { |contact| { id: contact.id, value: contact.name }} else @contacts = Contact.search(params[:term]).order(created_at: :desc).page params[:page] render json: @contacts.map { |contact| { id: contact.id, value: contact.name }} end endLuego en mis rutas:
scope '/dashboard' do resources :contacts do collection do get 'autocomplete' end end endAgregué un archivo index.js.erb para volver a representar mi lista de contactos a través de mi gema de paginación de kaminari:
$('#contacts').html('<%= j(render @contact) %>'); $('#paginator').html('<%= j(paginate(@contacts, remote: true)) %>'); Lo que espero que suceda aquí es que, dado que coloco un remote:true en mi barra de búsqueda, espero que cuando haga clic en un elemento de autocompletar no actualice la página, pero en este momento todavía está actualizando la página:
¿Alguna idea de por qué es así?
Su método de render actualizará su página