我正试图按照本指南为我的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"