Имею кошмар с этим и думаю, что я сойду с ума.Это должно быть что-то простое.Я работаю над списком объявлений # index.Он отображает результаты в JS-части без проблем, используя remote: true в форме поиска.Все хорошо.однако ....
Я хочу, чтобы эта же функция работала на корневой странице приложения.Таким образом, по существу, панель поиска, которая будет отображать результаты поиска в частичном сразу под панелью, когда пользователь выполняет поиск.Я могу заставить это работать нормально с Ransack, в результате чего страница обновляется и результаты показывают из частичного.На мой взгляд, он не отдает частичную, как JS, так же, как это делает контроллер листинга.
Биты кода очень похожи.Я добавлю их оба ниже.Ransack работает, просто не распознает пульт: правда.Я посмотрел в Chrome и на самом деле вижу, что по какой-то причине класс формы не регистрируется правильно.Я сделаю снимок экрана с рабочими и нерабочими битами.
Так что это просто вопрос поискового запроса Ransack, который не распознает удаленное устройство: истинно, судя по всему.Есть догадки?Требует ли Ransack добавить в форму что-то особенное, чтобы она работала со страницы с именем home.html.erb?вместо index.html.erb?Хотелось бы, чтобы несколько глаз буквально сказали мне, что я делаю что-то глупое здесь.Спасибо.
Фрагменты рабочего кода для поиска в листинге_контроллере
в листинге # index
def index
@search = Listing.ransack(params[:q])
@data = @search.result(:distinct => true)
@listings = @data.to_a
end
в листинге index.html.erb
<%= search_form_for @search, remote: true do |f| %>
<%= f.search_field :title_or_content_or_aircraft_highlights_or_airframe_engine_apu_weight_or_avionics_connectivity_or_interior_or_exterior_or_additional_info_cont, placeholder: "Search by keyword..", class: "form-control" %>
<%= f.submit "Show results", class: "btn btn-secondary btn-lg btn-block" %>
<% end %>
<div class="col-md-9" id="aircraft_listing">
<%= render partial: "shared/aircrafts-list" %>
</div>
листингеindex.js.erb
$("#aircraft_listing").html("<%= j render partial: 'shared/aircrafts-list' %>");
Работает как сон.
Контроллер страниц, который не будет играть в мяч.Поиск работает, но не ajax call
pages # home
def home
@search = Listing.ransack(params[:q])
if params[:search].present?
@data = @search.result(:distinct => true)
@listings = @data.to_a
end
end
pages home.html.erb
<%= search_form_for @search, remote: true do |f| %>
<%= f.search_field: title_or_content_or_aircraft_highlights_or_airframe_engine_apu_weight_or_avionics_connectivity_or_interior_or_exterior_or_additional_info_cont, placeholder: "Search by keyword..", class: "form-control-lg form-control-borderless" %>
<%= f.submit "Search", class: "btn btn-secondary btn-lg" %>
<% end %>
<div id="home_search_list">
<%= render partial: "shared/home-search-list" %>
</div>
pages home.js.erb
$("#home_search_list").html("<%= j render partial: 'shared/home-search-list' %>");
alert('Hello Rails');
очевидно, что предупреждение не появляется при запуске поиска.
Названы частичные имена (только что проверили их снова, чтобы убедиться, что я не схожу с ума)
_aircrafts-list.html.erb
_home-search-list.html.erb
И, наконец, последний бит, где я вижу пульт, явно не происходит в версии домашней страницы.
По какой-то причине тег формы не появляется в примере домашней страницы,Я только что заметил эту часть сейчас, после того как утром выдернул то, что осталось от моих волос.Свежие глаза были бы великолепны.Теперь еще одна вещь, касающаяся Ransack: тот факт, что у моих маршрутов есть ресурсы для перечисления, но у меня буквально есть только root_path, связанный с домашним действием моего контроллера страниц, имеет ли это значение с Ransack?
Спасибо всем.