我正在使用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
来获得工作路径,但为什么我必须这样做呢?路线在那里并且已配置为已删除,那么该怎么办?
答案 0 :(得分:1)
rake routes
显示应用程序将响应的路由。由您来确保生成与服务器期望的链接相匹配的链接。 link_to
不检查根据路由查看允许哪些动词 - 它希望您提供正确的动词。