Routing Error: No route matches [GET] "/users/sign_out" - Devise 4.1
Routing Error: No route matches [GET] "/users/sign_out" - Devise 4.1
所以我一直在创建我的 webapp,运行 遇到了 Devise 的问题。这是我的不同文件。
devise.rb 文件
config.sign_out_via = :delete
config.sign_out_via = :get if Rails.env.test?
index.html.erb 文件
<li>
<%= link_to "Logout", destroy_user_session_path, :method => :delete %>
</li>
routes.rb 文件
devise_for :users do
get '/users/sign_out' => 'devise/sessions#destroy'
end
问题是,如果我在我的网络应用程序上按 "Logout",我会立即得到:
No route matches [GET] "/users/sign_out"
当我运行 rake routes | grep destroy_user,这是响应。
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
不确定出了什么问题。我该如何解决?我正在使用 rails 4.2.1 / devise 4.1.1。提前致谢。
如果您在使用 method: :delete
请求时遇到错误并且您看到 Matches [GET]
那么这通常是加载 UJS 文件时出现问题。
确保 application.js
已正确打包并且正在加载 jQuery 并且 Rails JavaScript 的其余部分需要正常运行。
我遇到了同样的问题。我通过在 application.js
中替换它来解决问题:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
与:
//= require jquery_ujs
//= require jquery
//= require turbolinks
//= require_tree .
就是这么简单:)
我遇到了类似的问题 - 对我来说,我根本没有加载 jquery_ujs。 (我在最新版本的 bootstrap 中遇到了一些 js 问题,决定从 CDN 获取我需要的所有内容,注释掉我的 application.js,其中引用了 jquery_ujs。
所以我一直在创建我的 webapp,运行 遇到了 Devise 的问题。这是我的不同文件。
devise.rb 文件
config.sign_out_via = :delete
config.sign_out_via = :get if Rails.env.test?
index.html.erb 文件
<li>
<%= link_to "Logout", destroy_user_session_path, :method => :delete %>
</li>
routes.rb 文件
devise_for :users do
get '/users/sign_out' => 'devise/sessions#destroy'
end
问题是,如果我在我的网络应用程序上按 "Logout",我会立即得到:
No route matches [GET] "/users/sign_out"
当我运行 rake routes | grep destroy_user,这是响应。
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
不确定出了什么问题。我该如何解决?我正在使用 rails 4.2.1 / devise 4.1.1。提前致谢。
如果您在使用 method: :delete
请求时遇到错误并且您看到 Matches [GET]
那么这通常是加载 UJS 文件时出现问题。
确保 application.js
已正确打包并且正在加载 jQuery 并且 Rails JavaScript 的其余部分需要正常运行。
我遇到了同样的问题。我通过在 application.js
中替换它来解决问题:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
与:
//= require jquery_ujs
//= require jquery
//= require turbolinks
//= require_tree .
就是这么简单:)
我遇到了类似的问题 - 对我来说,我根本没有加载 jquery_ujs。 (我在最新版本的 bootstrap 中遇到了一些 js 问题,决定从 CDN 获取我需要的所有内容,注释掉我的 application.js,其中引用了 jquery_ujs。