Rails 条路线指向不同的位置

Rails routes pointing to different location

我在尝试注销用户时遇到错误。显示和删除用户工作正常。我得到:

NoMethodError in Users#show. 
undefined method `email' for nil:NilClass

我注意到的另一个奇怪的事情是传递的参数

Parameters: {"id"=>"sign_out"}

我的看法:

- if user_signed_in?
  = link_to destroy_user_session_path, class: "nav-link", :action => 'go' do
    .nav-icon.icon-logout
      .lock
         = image_tag("icons/logout.png")
      .unlock
         = image_tag("icons/logout-hover.png")
         Logout
- else
 = link_to new_user_session_path, class: "nav-link", :action => 'go' do
   .nav-icon.icon-login
     .lock
       = image_tag("icons/login.png")
     .unlock
       = image_tag("icons/login-hover.png")
       Login

我的路线:

devise_for :users
  resources :users, :only =>[:show]
  match '/users',   to: 'users#index', via: 'get'
  match '/users/:id',     to: 'users#show', via: 'get'
  match '/users/:id' => 'users#destroy', :via => :delete

如此处发布 我错过了我认为的 method: :delete

= link_to destroy_user_session_path, method: :delete, class: "nav-link", :action => 'go' do