繁体   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