rails-devise - 无法注销

jun*_*nky 1 routes ruby-on-rails devise

我无法测试我的登录信息......'我无法注销(还没有注销按钮).我能够测试一次,但现在我被"卡住"登录了!

为什么我不能使用
http://localhost:3000/account/sign_out

我收到一个错误 No route matches [GET] "/account/sign_out"

但是rake routes给了我:

         ...
         new_standard_user_session GET    /account/sign_in(.:format)                                      devise/sessions#new
             standard_user_session POST   /account/sign_in(.:format)                                      devise/sessions#create
     destroy_standard_user_session DELETE /account/sign_out(.:format)                                     devise/sessions#destroy    new_standard_user_registration GET    /account/sign_up(.:format)                                      devise/registrations#new
             ...
Run Code Online (Sandbox Code Playgroud)

/account/sign_in和你的/account_sign_up网址都可以

Cas*_*lho 8

No route matches [GET] "/account/sign_out"
Run Code Online (Sandbox Code Playgroud)

您尝试通过GET方法访问该链接,但您的路由是DELETE,正如您发布的那样.

destroy_standard_user_session DELETE /account/sign_out(.:format) 
Run Code Online (Sandbox Code Playgroud)

所以,要做到这一点,请使用method参数link_to(我假设您正在创建链接link_to)

像这样的东西

link_to "Sign Out", destroy_standard_user_session_path, :method => :delete
Run Code Online (Sandbox Code Playgroud)

最好的祝福