没有路线匹配“/ logout”

单击“注销”时出现以下路由错误:

No route matches [GET] "/logout" 

这是我的application.html.erb文件:

    :delete %>  

这是我的routes.rb文件:

 get 'admin' => 'admin#index' controller :sessions do get 'login' => :new post 'login'=> :create delete 'logout' => :destroy end get "sessions/create" get "sessions/destroy" 

有人知道如何解决这个问题吗?

您是否启用了所需的内置JavaScript库( jquery / jquery_ujs )? 浏览器不直接支持delete方法,因此最终会创建一个带有隐藏字段_method的表单,Rails会将其解释为将您引导到正确的位置。

编辑:

要启用这些库,请检查应用程序布局文件。 这通常位于app/views/layouts/application.html.erb ,但如果您自定义了app/views/layouts/application.html.erb ,则可能会有所不同。

您需要在head部分中包含以下标记:

 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 

这应该让这对你有用,但如果没有,请回复,我会尽力帮助你。 如果您可以在GitHub或其他地方获取代码,这将非常有用,这样我们就能看到您在上下文中尝试做的事情。

更改delete 'logout' => :destroyget 'logout' => :destroy这将起作用。