路由到当前Rails页面进行搜索

时间:2016-11-14 17:14:30

标签: ruby-on-rails search

我有一个侧边栏,可以在我的application_controller中获取文章,但我想为它添加一个搜索功能,所以我修改它看起来像这样

  def fetch_articless
    @articles = Article.search(params[:search])
  end

搜索工作正常,但我目前将表单提交给我的应用程序root,因此如果您搜索,它总是会重定向到根目录。

<%= form_tag root_path, :method => 'get' do %>
  <p>
    <%= text_field_tag :search, params[:search] %>
    <%= submit_tag "Search", :title => nil %>
  </p>
<% end %>

由于我的侧边栏位于每个页面上,我希望能够将我的表单提交到我当前所在的任何页面,并且将通过应用程序帮助程序执行搜索。我认为我需要建立一条新的路线,但是对Rails不熟悉我还不太了解路线是如何工作的。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

方法url_for将返回当前网址。并且,您始终可以使用''(空字符串)将表单操作提交到当前页面

注意 - 使用搜索框,我倾向于使用<form>标签(没有erb),所以它不包含特殊字符(它是一个雪人*),我使用常规输入提交标签,所以它不提交按钮的name=value