Rails:尝试添加搜索功能 - 不断"no route matches"



我正试图按照本指南为我的Rails应用程序实现一个简单的搜索功能。我正在尝试允许用户按名称搜索动物。

这是我当前的代码:

控制器/animals_controller.rb

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

这是我的视图/amers/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=>"get"}

我不明白为什么这不起作用。我在animal_controller.rb中定义了搜索函数。有人能指出为什么搜索函数可能不起作用吗?

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

resources :animals do
get :search
end

get search: "animals#search"

相关内容

最新更新