【问题标题】:No route matches [GET] "/users/sign_out" **Rails 5/Bootstrap 4**没有路线匹配 [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 存储库中的所有说明进行安装。

【问题讨论】:

标签: ruby-on-rails devise bootstrap-4


【解决方案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' %>

【讨论】:

    猜你喜欢
    • 2017-08-03
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 2014-01-29
    • 2015-12-09
    相关资源
    最近更新 更多