Rails:尝试添加搜索功能-不断获取“无路线匹配”

时间:2018-08-07 23:04:51

标签: ruby-on-rails controllers

我正在尝试通过遵循this guide为我的Rails应用程序实现简单的搜索功能。我正在尝试允许用户按名称搜索动物。

这是我当前的代码:

controllers / animals_controller.rb

class AnimalsController < ApplicationController
  def search
    @animal = Animal.search(params[:search])
  end    
end 

这是我的 views / animals / index.html.erb

<%= form_tag :controller => 'animals', :action => 'search', :method => 'get' do %>
  <%= text_field_tag :search, params[:search], :id => 'search_field' %>
  <%= submit_tag "Search", :name => nil %> 
<% end %> 

这是我不断收到的错误:

  

没有路线匹配{:action =>“搜索”,:controller =>“动物”,   :method =>“获取”}

我不明白为什么这不起作用。我在animal_controller.rb中定义了搜索功能。谁能指出为什么搜索功能可能无法正常工作?

1 个答案:

答案 0 :(得分:1)

根据您遵循的指南,从未提到创建GET /search路线。您可以在config/route.rb中定义路线

resources :animals do
  get :search
end

get search: "animals#search"