我想为用户提供搜索功能。这是行不通的。所以我简化了方法,我只想在点击搜索按钮时刷新索引页面。但它仍然无效 在UsersController中显示 ActiveRecord :: RecordNotFound,找不到ID = search的用户。
请告诉我为什么
我的控制器
class UsersController < ApplicationController
load_and_authorize_resource :except => [:index]
def search
redirect_to users_path
end
end
我的观点
<%= form_tag users_search_path, :method => 'get' do %>
<td><%= text_field_tag :username, params[:username] %></td>
<%= submit_tag "Search", :class => "buttons buttons-rounded buttons-flat-action", :id => "button-new"%>
<br><br><br>
<% end %>
我的路线
Procedures::Application.routes.draw do
devise_for :users
#### USER MANAGEMENT ####
resources :users do
resources :rateofpays # professional timesheet
resources :roles
resources :biographies
resources :qualifications do
collection do
put 'complete', :action => 'complete'
end
end
resources :supervisors
end
#### users search ####
get 'users/search' => "users#search", as: 'users_search'
答案 0 :(得分:3)
该行
get 'users/search' => "users#search", as: 'users_search'
...你的路线太远了。 resources :users
首先显示,并且其匹配路径看起来像users/:id
,而users/search
与此匹配不正确。
只需将get 'users/search'
移到顶部...或者将其定义为resources :users
下的收集方法
resources :users do
collection do
get 'search'
end