没有路线匹配 [GET] "/users/sign_out" **Rails 5/Bootstrap 4**

Posted

技术标签:

【中文标题】没有路线匹配 [GET] "/users/sign_out" **Rails 5/Bootstrap 4**【英文标题】:No route matches [GET] "/users/sign_out" **Rails 5/Bootstrap 4** 【发布时间】:2018-03-04 15:05:49 【问题描述】:

我正在运行 Rails 5 并在使用 Devise 的现有应用程序中将 Bootstrap 更新到版本 4。

在更新 Bootstrap 之前,路由运行良好。现在,当用户选择退出时,他们会收到以下消息:

没有路由匹配 [GET] "/users/sign_out"

这里是部分头部代码:

  <% if current_user %>
  <a class=<%= link_to 'Classes', tracks_path %></a>
  <a class=<%= link_to 'Edit profile', edit_user_registration_path %></a>
  <a class=<%= link_to 'Sign out', destroy_user_session_path, method: :delete %></a>

Rake Routes 显示:

destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy

对 Bootstrap 4 的更改是否会触发此错误?我已按照 Bootstrap 存储库中的所有说明进行安装。

【问题讨论】:

见***.com/questions/7465919/… 【参考方案1】:

问题是您将链接标签类属性中呈现:

<a class=<%= link_to 'Sign out', destroy_user_session_path, method: :delete %></a>

这样会导致格式错误的输出忽略您指定的method: :delete。这就是您要查找的内容:

<%= link_to "Sign out", destroy_user_session_path, 
    method: :delete, class: 'nav-link' %>

【讨论】:

以上是关于没有路线匹配 [GET] "/users/sign_out" **Rails 5/Bootstrap 4**的主要内容,如果未能解决你的问题,请参考以下文章

没有路线匹配 [GET] "/users/sign_out" **Rails 5/Bootstrap 4**

Rails 3.2.13 - 没有路线匹配 [GET] "/js/jquery.fancybox.js"

带有设计的 Rails 3:没有路线匹配 /d/users/sign_out

Rails 3.0.9 + Devise + Cucumber + Capybara 臭名昭著的“没有路线匹配 /users/sign_out”

路由错误克隆目录后没有路由匹配 [GET] "/logout"

没有路线匹配 [GET] /assets