Ruby on rails 如何使用rails主页中的elasticsearch表单
我有一个用文章、主页和搜索功能设置的应用程序。我正在使用elasticsearch来实现我的搜索功能。我还没有找到一种方法来使用主页上的搜索表单重定向到查询结果。我觉得这应该很简单,但我只是错过了 注意:Elasticsearch在它自己的视图文件夹中工作。我只是想让我的主页上的搜索表单以同样的方式运行,并将我带到一个显示查询文章列表的“结果”页面 我的搜索控制器:Ruby on rails 如何使用rails主页中的elasticsearch表单,ruby-on-rails,forms,elasticsearch,search,Ruby On Rails,Forms,elasticsearch,Search,我有一个用文章、主页和搜索功能设置的应用程序。我正在使用elasticsearch来实现我的搜索功能。我还没有找到一种方法来使用主页上的搜索表单重定向到查询结果。我觉得这应该很简单,但我只是错过了 注意:Elasticsearch在它自己的视图文件夹中工作。我只是想让我的主页上的搜索表单以同样的方式运行,并将我带到一个显示查询文章列表的“结果”页面 我的搜索控制器: class SearchController < ApplicationController def search
class SearchController < ApplicationController
def search
if params[:q].nil?
@articles = []
else
@articles = Article.search params[:q]
end
end
end
你能不能指定当你在主页上运行表单时会发生什么,它会给你一个错误,不能搜索,请添加更多关于发生了什么的信息。它什么都不做。url反映查询已运行,但不会重定向到新的结果页面。尽管它没有抛出错误,但我仍然对一般流程有问题。也许这与提交时使用了nil名称有关,您可以删除该部分并测试它吗
<h1>Articles Search</h1>
<%= form_for search_path, method: :get do |f| %>
<p>
<%= f.label "Search for" %>
<%= text_field_tag :q, params[:q] %>
</p>
<% end %>
<ul>
<% @articles.each do |article| %>
<li>
<h3>
<%= link_to article.title, controller: "articles", action: "show", id: article._id%>
</h3>
</li>
<% end %>
</ul>
<div class="search">
<%= form_for search_path, method: :get do |f| %>
<%= text_field_tag :q, params[:q], placeholder: "Search..."%>
<%= submit_tag "Go", name: nil %>
<% end %>
</div>
get 'search', to: 'search#search'