我有一个应用程序设置文章,一个主页,和一个搜索功能。我正在使用elasticsearch搜索我的搜索功能。我还没有想出一种方法来使用主页上的搜索表单重定向到查询结果。我觉得这应该很简单,但我只是错过了。
注意:Elasticsearch只在它自己的视图文件夹中工作。我只想让主页上的搜索表单以同样的方式操作,并将我带到一个显示查询文章列表的“结果”页面。
class SearchController < ApplicationController
def search
if params[:q].nil?
@articles = []
else
@articles = Article.search params[:q]
end
end
end
我的搜索视图:
<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'