elasticsearch,search,Ruby On Rails,Forms,elasticsearch,Search" /> elasticsearch,search,Ruby On Rails,Forms,elasticsearch,Search" />

Ruby on rails 如何使用rails主页中的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

我有一个用文章、主页和搜索功能设置的应用程序。我正在使用elasticsearch来实现我的搜索功能。我还没有找到一种方法来使用主页上的搜索表单重定向到查询结果。我觉得这应该很简单,但我只是错过了

注意:Elasticsearch在它自己的视图文件夹中工作。我只是想让我的主页上的搜索表单以同样的方式运行,并将我带到一个显示查询文章列表的“结果”页面

我的搜索控制器:

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'