Ruby on rails Rails 5.0.3中的实时搜索

Ruby on rails Rails 5.0.3中的实时搜索,ruby-on-rails,ruby-on-rails-5,livesearch,Ruby On Rails,Ruby On Rails 5,Livesearch,我正在努力让一个实时搜索启动和运行,但我有麻烦。单击搜索按钮时,搜索功能工作正常。我通过实时搜索查看了每个堆栈问题。以下是我尝试过的两个外部链接(更多): 我的搜索功能如下所示: index.html.erb <%= form_tag(products_path, method: :get) do %> <%= text_field_tag :term, params[:term] %> <%= submit_tag 'Search', name: ni

我正在努力让一个实时搜索启动和运行,但我有麻烦。单击搜索按钮时,搜索功能工作正常。我通过实时搜索查看了每个堆栈问题。以下是我尝试过的两个外部链接(更多):

我的搜索功能如下所示:

index.html.erb

<%= form_tag(products_path, method: :get) do %>
  <%= text_field_tag :term, params[:term] %>
  <%= submit_tag 'Search', name: nil %>
<% end %>

<div id="grid-display">
  <%= render "products" %>
  <%= paginate @products %>
</div>
product.rb

def self.search(term)
  if term
    where('product_name LIKE ?', "%#{term}%")
  else
    all
  end
end
application.js

$(function() {
  $("product_search input").keyup(function() {
    $.get($("#product_search").attr("action"), $("#product_search").serialize(), null, "script");
  return false;
  });
});
$(document).on('turbolinks:load', (function() {
  $("product_search input").keyup(function() {
    $.get($("#product_search").attr("action"),  $("#product_search").serialize(), null, "script");
  return false;
  });
}));
index.js.erb

$("#products").html("<%= escape_javascript render("products") %>");

也许您希望将相关的javascript.Updated包含在问题中。我怀疑您需要一个
$(文档).ready(function(){…})
$(document).on('turbolinks:load',function(){…})
在您的js中(我不使用turbolinks,所以您必须确定哪一个适合您)。我将添加它并返回。更新application.js以包含您提供的两个选项。没有解决问题。但仍然使用基本搜索栏加载。
$(document).on('turbolinks:load', (function() {
  $("product_search input").keyup(function() {
    $.get($("#product_search").attr("action"),  $("#product_search").serialize(), null, "script");
  return false;
  });
}));