Ruby on rails Rails 5.0.3中的实时搜索
我正在努力让一个实时搜索启动和运行,但我有麻烦。单击搜索按钮时,搜索功能工作正常。我通过实时搜索查看了每个堆栈问题。以下是我尝试过的两个外部链接(更多): 我的搜索功能如下所示: index.html.erbRuby 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
<%= 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;
});
}));