Ruby on rails 轨道设计,无路线匹配'/用户/注销'-&燃气轮机;注销/注销路由问题

Ruby on rails 轨道设计,无路线匹配'/用户/注销'-&燃气轮机;注销/注销路由问题,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我有一个应用程序使用Desive登录/退出,查看/创建配置文件。到目前为止,用户可以创建和删除配置文件,尽管每个用户只能有一个配置文件。在整个应用程序注销/注销之前,我几乎没有问题地设置了我的路线。最终,我只能破译错误日志,routes.rb似乎需要一些修改才能正常工作,但我被难住了。以下是错误和路由。rb: /log/production.log: Started DELETE "/users/sign_out" for 127.0.0.1 at 2020-01-26 01:56:53 -05

我有一个应用程序使用Desive登录/退出,查看/创建配置文件。到目前为止,用户可以创建和删除配置文件,尽管每个用户只能有一个配置文件。在整个应用程序注销/注销之前,我几乎没有问题地设置了我的路线。最终,我只能破译错误日志,routes.rb似乎需要一些修改才能正常工作,但我被难住了。以下是错误和路由。rb: /log/production.log:

Started DELETE "/users/sign_out" for 127.0.0.1 at 2020-01-26 01:56:53 -0500
ActionController::RoutingError (No route matches [DELETE] "/users/sign_out"):
routes.rb

Rails.application.routes.draw do
devise_for :users, :controllers => {:sessions => "users/sessions" }

resources :profiles, only: [:new, :create, :edit, :update, :destroy]

devise_scope :user do
authenticated :user do
root to: 'profiles#index', as: :authenticated_root
get '/profiles/new' => 'profiles#new'
match '/profiles' => 'profiles#create', via: [:get, :post]
get '/profiles/:id' => 'profiles#show'
get '/profiles/:id/edit' => 'profiles#edit'
match '/profiles/:id' => 'profiles#update', via: [:get, :post]
delete '/profiles' => 'profiles#destroy', via: [:get, :post]
end
unauthenticated :user do
root to: 'devise/sessions#new', as: :unauthenticated_root
match '/users/sign_in' => 'devise/sessions#create', via: [:get, :post]
delete '/users/sign_out' => 'devise/sessions#destroy'
end
end
end

我读到使用资源:用户可能会影响Desive sessions controller,因为我需要一个UsersController,但没有包括资源:路由中的用户,和/或类似错误

您将注销路由放置在
路由的
未经验证的
块中。rb

unauthenticated :user do
  # ..
  delete '/users/sign_out' => 'devise/sessions#destroy'
end
没有意义的是,只有经过身份验证的用户才能注销。只需将该方法移到上面的
authenticated:user
块中:

authenticated :user do
  # ..
  delete '/users/sign_out' => 'devise/sessions#destroy'
end