没有路线匹配 [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”