簡體   English   中英

無法注銷 Rails 應用程序設計給出錯誤找不到路徑“/tuners/sign_out 的設計映射”

[英]Cannot logout of rails application devise gives error Could not find devise mapping for path "/tuners/sign_out

注銷設備時出現此問題:

Could not find devise mapping for path "/tuners/sign_out". This may happen for two reasons: 1) You forgot to wrap your route inside the scope block. For example: devise_scope :user do get "/some/route" => "some_devise_controller" end 2) You are testing a Devise controller bypassing the router. If so, you can explicitly tell Devise which mapping to use: @request.env["devise.mapping"] = Devise.mappings[:user]

我的路線文件

    Rails.application.routes.draw do


  devise_for :tuners 
  get '/tuners/sign_out' => 'devise/sessions#destroy'
  resources :hardy_pianos
  devise_for :admins
  resources :images
  resources :entries
  resources :models
  get '/clients/mail_room' => 'clients#mail_room'
  get '/clients/mail' => 'clients#mail'

  #list of clients to reschedule
  get '/clients/book_again' => 'clients#book_again'  
  # current upcoming jobs 
  get '/clients/current' => 'clients#current' 
  # reports 
  get '/clients/reports' => 'clients#reports' 
  resources :clients

  seems_rateable
  post '/rate' => 'rater#create', :as => 'rate'
  resources :technicians
  resources :members
  resources :admins


  resources :tuners
  get 'tuners/tuners_pianos'
  get 'pianos/tuners_pianos'

  resources :tuners
  resources :journals
  resources :expenses
  resources :interests
  resources :purchases
  resources :contacteds
  resources :pianos
  get '/pianos/work_needed' => 'pianos#work_needed'
  get '/invoices/work_needed' => 'invoices#work_needed'
  resources :invoices
  resources :pages
  #devise_for :installs
  resources :prosperities
  get '/finances/taxes' => 'finances#taxes'
  resources :posts
  get '/tunings/current' => 'tunings#current' # or match for older Rails versio
  get '/tunings/bookagain' => 'tunings#bookagain' # or match for older Rails version
  get '/tunings/bookagain12' => 'tunings#bookagain12'
  get '/tunings/reports' => 'tunings#reports'
  get '/tunings/information' => 'tunings#information'
  resources :tunings
  root 'pages#index'
  get '/' => 'tunings#current'

# 有關此文件中可用 DSL 的詳細信息,請參閱http://guides.rubyonrails.org/routing.html end

誰能幫我理解這里的問題是什么? 我有點堅持這個,已經用谷歌搜索了一段時間,但把它放在了次要位置。 提前致謝。

替換行:

 get '/tuners/sign_out' => 'devise/sessions#destroy'

delete 'sign_out', to: 'devise/sessions#destroy'

或者你可以試試這個。 注意行的順序。:

 Rails.application.routes.draw do

devise_scope :tuners do
   get "sign_out", to: "devise/sessions#destroy"
end
  devise_for :tuners 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM