Я работаю над приложением поиска, используя jquery UI Rils Gem.
Вот мои настройки.
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 %>
Обратите внимание, что я помещаю remote:true
в форму. А затем на контроллере моих контактов:
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
end
Затем на моих маршрутах:
scope '/dashboard' do
resources :contacts do
collection do
get 'autocomplete'
end
end
end
Я добавил индекс. js .erb файл для повторной визуализации моего списка контактов с помощью моего драгоценного камня пагинации kaminari:
$('#contacts').html('<%= j(render @contact) %>');
$('#paginator').html('<%= j(paginate(@contacts, remote: true)) %>');
Здесь я ожидаю, что, поскольку я помещаю remote:true
в строку поиска, я ожидаю, что когда я нажму на элемент автозаполнения, он не будет обновляться sh страница, но сейчас она все еще обновляет страницу:
Есть идеи, почему это так?