Ruby on rails 没有与[GET]匹配的路由/注销“;[轨道]

Ruby on rails 没有与[GET]匹配的路由/注销“;[轨道],ruby-on-rails,routes,Ruby On Rails,Routes,单击“注销”时出现以下路由错误: 这是my application.html.erb文件: <% if session[:user_id] %> <%= link_to 'Logout', logout_path, :method => :delete %> <% end %> 有人知道如何解决这个问题吗?您是否启用了所需的内置JavaScript库(jquery/jquery\u ujs)?浏览器不直接支持delete方法,因此

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

这是my application.html.erb文件:

 <% if session[:user_id] %>
      <%= link_to 'Logout', logout_path, :method => :delete %>
    <% end %>

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

您是否启用了所需的内置JavaScript库(
jquery
/
jquery\u ujs
)?浏览器不直接支持
delete
方法,因此这实际上会创建一个带有隐藏字段
\u method
的表单,Rails将该字段解释为指向正确的位置

编辑:

要启用这些库,请检查应用程序布局文件。这通常位于
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 %>
true%>
正确%>

这应该让你的工作,但如果没有,发回,我会尝试进一步帮助。如果你能在GitHub或其他地方在线获取你的代码,这将非常有用,这样我们都可以在上下文中看到你在尝试做什么。

更改
删除“注销”=>:销毁
获取“注销”=>:销毁
这将起作用

您是否启用了所需的内置JavaScript库(jquery/jquery\u ujs)?浏览器不直接支持delete方法,因此这实际上会创建一个带有隐藏字段\u方法的表单,Rails解释为将您引导到正确的位置。将我的评论提升为答案…更改
删除“注销”=>:销毁
获取“注销”=>:销毁
这将有效。@Kingstone非常感谢;)它起作用了!没有。如何启用它?对于Rails 5.1,我所要做的就是向application.js文件中添加
/=require Rails ujs
。但是谢谢你的帮助@金斯通解决了这个问题:)@Koin Arab,杰克只是想让你记住正确的答案
get 'admin' => 'admin#index'
  controller :sessions do
    get 'login' => :new
    post 'login'=> :create
    delete 'logout' => :destroy
  end

  get "sessions/create"
  get "sessions/destroy"
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>