【发布时间】:2017-03-18 20:14:47
【问题描述】:
我在应用程序中使用clearance。当用户尝试退出时,出现路由错误:
Failure/Error: visit sign_out_path
ActionController::RoutingError:
No route matches [GET] "/sign_out"
视图中的退出链接:
= link_to t(".sign_out"), sign_out_path, method: :delete
在roures.rb配置中
get "/sign_in", to: "clearance/sessions#new", as: "sign_in"
get "/session", to: "clearance/sessions#new", as: "session"
delete "/sign_out", to: "clearance/sessions#destroy", as: "sign_out"
get "/sign_up", to: "clearance/users#new", as: "sign_up"
resources :passwords, controller: "clearance/passwords", only: [:create, :new]
resources :session, controller: "clearance/sessions", only: [:create]
resources :users, controller: "users", only: [:create] do
resources :password,
controller: "clearance/passwords",
only: [:create, :edit, :update]
end
root to: "welcome#welcome_page"
resources :welcome, only: [:welcome_page], path:''
resources :pages, only: [:show]
resources :users
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
Rails 5 + Ruby 2.2.2
【问题讨论】:
-
你只有一个删除路由,正在尝试使用get?
-
我尝试修复错误,并在路由中添加
get "/sign_out", to: "clearance/sessions#destroy", as: "sign_out"。但它错了。我写问题时忘记删除字符串。
标签: ruby-on-rails