destroy_user_session在Devise中不起作用

时间:2012-01-21 20:44:09

标签: ruby-on-rails devise httpverbs

我正在使用rails 3.1.3并设计1.5.3,当我将destroy_user_session_path添加到我的布局文件时,该链接不起作用。我可以正常登录,但是当我点击这条路径时,我收到了这个错误:

No route matches [GET] "/users/sign_out"

但是,如果我运行rake路线,我会看到列出的路线:

destroy_user_session DELETE /users/sign_out(.:format)
{:action=>"destroy", :controller=>"devise/sessions"}

因此该路线明确使用DELETE动词。我可以通过添加:method => :delete来获得工作路径,但为什么我必须这样做呢?路线在那里并且已配置为已删除,那么该怎么办?

1 个答案:

答案 0 :(得分:1)

rake routes显示应用程序将响应的路由。由您来确保生成与服务器期望的链接相匹配的链接。 link_to不检查根据路由查看允许哪些动词 - 它希望您提供正确的动词。