无法找到id = search的用户

时间:2014-07-07 19:59:52

标签: ruby-on-rails search

我想为用户提供搜索功能。这是行不通的。所以我简化了方法,我只想在点击搜索按钮时刷新索引页面。但它仍然无效 在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'

1 个答案:

答案 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